对https://code.google.com/p/guava-libraries/wiki/UsingAndAvoidingNullExplained的解释是番石榴(和后来的java 8)添加了一个通用类可选,以清除空检查。为什么guava/java使用possible.isPresent()而不是Optional.isPresent(可能)?
如果一个函数返回一个Optional,它需要调用者在使用它之前解开字符串。
这种形式
Optional<String> possible = returnAnAbsentOptional();
if(possible.isPresent()){
System.out.println(possible.get())
}
会正常完成。如果returnAnAbsentOptional返回null,我们有一个NPE一遍。
我的问题是,为什么Guava/Java使用possible.isPresent()而不是Optional.isPresent(可能),它可以相应地响应null值?
我不明白这个问题。如果你通过'null'' Optional',那么你就有一些严重的问题。 – 2014-11-23 12:44:38