在 java-8 中处理或避免 NPE 的最佳方法是啥?
Posted
技术标签:
【中文标题】在 java-8 中处理或避免 NPE 的最佳方法是啥?【英文标题】:The best way to handle or avoid NPE in java-8?在 java-8 中处理或避免 NPE 的最佳方法是什么? 【发布时间】:2016-11-12 06:00:08 【问题描述】:如何在 java-8 中避免/处理更清晰、更安全的NullPointerException
?
但Optional
类除外:
Optional emptyOptional = Optional.empty();
emptyOptional.ifPresent(System.out::println);
if (emptyOptional.isPresent())
System.out.println(emptyOptional.get());
java-8
还有其他方法吗?
【问题讨论】:
除了 Optional 之外,没有什么比通常的== null
和 != null
检查更多的了。尽可能避免空值。如果你真的很关心 null-safety 并且愿意,那么请使用 Kotlin,它具有一流的 null-safety。
你用的是哪个IDEA?
【参考方案1】:
在 java 8 中避免!= null
语句的唯一特性是可选的,如果你想使用不同的模式,你有几个选择:
-
Null Object Pattern
基于注释,例如JetBrains @NotNull/@Nullable。更多详情请查看Java @NotNull
此外,您可以在 SOF 中查看有关 avoiding-null-statements 的答案
【讨论】:
还有一个更新的空注释列表:***.com/questions/35892063/…。在该线程中,您会找到 MErnst(JSR 308 规范负责人)的答案,强调“旧”声明注释和 TYPE_USE 注释(Java 8)之间的显着差异——由于问题特别提到了 Java 8,因此值得注意的是TYPE_USE 注释允许更完整的分析。以上是关于在 java-8 中处理或避免 NPE 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Nuxt 处理登录\注销按钮以避免闪烁内容的最佳方法是啥?