我最近看过一篇博客文章(由@java发布),表明以下代码变得越来越普遍:
Optional.ofNullable(i).ifPresent(x -> doBlah(x));
Run Code Online (Sandbox Code Playgroud)
代替:
if (i != null) {
doBlah(i);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下使用Optional对我来说显得非常尴尬,甚至忽略了变量的命名 - 后者更容易阅读,更容易用于用例(处理空值).我相信这也可以更好地捕获语义 - 我可能来自不遵守Optional试图捕获的语义的代码(如可能的副本和本Oracle文章中所述).
我没有看到一个,但有一个很好的语义原因,更喜欢Optional.isNullable方法(忽略它可能具有的性能影响取决于它的使用方式)?