我有一种方法可以产生Optional<String>
但是这个 String 必须在另一个应用程序级别解析为 Integer 或 Long。
这我有一个Function<String, Integer>
可以应用于字符串,以产生一个整数。此转换可能会失败,因为 String 可能不是 Integer 可解析值。
我想在转换失败时返回 Optional,而不是抛出解析异常。
我不能让 STRING_TO_INTEGER_FUNCTION 返回 null,因为 Guava 不允许这样做:
Exception in thread "main" java.lang.NullPointerException: Transformation function cannot return null.
因此,我唯一能做的就是得到一个Function<String,Optional<Integer>>
,但最终结果是一个Optional<Optional<Integer>>
,这并不是很酷,因为我可能需要对其进行其他转换。
有人知道我怎么能在番石榴做这样的事情吗?
Optional.of("Toto").transform(STRING_TO_INTEGER_FUNCTION) = // Optional<Integer> ?
谢谢