對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