番石榴的可选课程如何帮助 NPE



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

我认为它不是很有用,除非我们使用optional.or()用一些默认值覆盖,或者大多数时候用空对象覆盖。

还有其他好处,我看不到,否则可以轻松避免而不会产生任何额外的开销?

通过从方法返回 optional,可以强制客户端对缺少的值执行显式检查。

只要您是唯一使用您的方法并且您记得 null 检查的人,一切都很好。

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

最新更新