我被要求更喜欢使用Optional类来避免空指针异常,但我不确定它会如何显着帮助,因为无论如何我们仍然必须应用检查optional.isPresent()
以避免像null检查一样出现异常
除非我们使用optional.or()
覆盖某个默认值或大部分时间使用空对象,否则我认为它非常有用。
还有其他任何好处,我很想看到,否则这可以很容易地避免,而不会产生任何额外的开销?
答案 0 :(得分:4)
通过从您的方法返回可选项,您强制客户端再次显示缺少值的显式检查。
只要您是唯一一个使用您的方法并记住空检的人,一切都很好。
但现在假设我正在使用您的API - 我怎么知道您的方法是否可以返回null?当然没有阅读javadoc。 如果我看到Optional作为返回类型,我确切地知道这种情况可能会发生,我可以做出反应。