为什么使用Optional.of超过Optional.ofNullable?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (75)

使用Java 8时Optional类中,有两种方法可以将值包装为可选的。

String foobar = <value or null>;
Optional.of(foobar);         // May throw NullPointerException
Optional.ofNullable(foobar); // Safe from NullPointerException
提问于
用户回答回答于

问题是基于假设可能抛出NullPointerException的代码比不可能的代码更糟糕。

这个假设是错误的。如果希望foobar由于程序逻辑而永远不会为null,那么使用它会更好,Optional.of(foobar)因为您会看到一个NullPointerException表明您的程序存在错误的程序。

如果使用Optional.ofNullable(foobar)foobar可能发生null错误

扫码关注云+社区