Guava的Optional类如何帮助NPE?

时间:2014-12-16 16:29:20

标签: java guava optional

我被要求更喜欢使用Optional类来避免空指针异常,但我不确定它会如何显着帮助,因为无论如何我们仍然必须应用检查optional.isPresent()以避免像null检查一样出现异常

除非我们使用optional.or()覆盖某个默认值或大部分时间使用空对象,否则我认为它非常有用。

还有其他任何好处,我很想看到,否则这可以很容易地避免,而不会产生任何额外的开销?

1 个答案:

答案 0 :(得分:4)

通过从您的方法返回可选项,您强制客户端再次显示缺少值的显式检查。

只要您是唯一一个使用您的方法并记住空检的人,一切都很好。

但现在假设我正在使用您的API - 我怎么知道您的方法是否可以返回null?当然没有阅读javadoc。 如果我看到Optional作为返回类型,我确切地知道这种情况可能会发生,我可以做出反应。