【问题标题】: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?

标签: exception nullpointerexception java-8


【解决方案1】:

在 java 8 中避免!= null 语句的唯一特性是可选的,如果你想使用不同的模式,你有几个选择:

  1. Null Object Pattern
  2. 基于注释,例如JetBrains @NotNull/@Nullable。更多详情请查看Java @NotNull

此外,您可以在 SOF 中查看有关 avoiding-null-statements 的答案

【讨论】:

  • 还有一个更新的空注释列表:stackoverflow.com/questions/35892063/…。在该线程中,您会找到 MErnst(JSR 308 规范负责人)的答案,强调“旧”声明注释和 TYPE_USE 注释(Java 8)之间的显着差异——由于问题特别提到了 Java 8,因此值得注意的是TYPE_USE 注释允许更完整的分析。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-23
  • 2011-01-12
  • 2014-12-15
  • 2017-04-27
  • 1970-01-01
相关资源
最近更新 更多