每当我在 Java 中迭代null
Collection
时,它都会在运行时抛出一个NullPointerException
。为什么没有编译时检查?
例如这里:
List<String> list = null;
for (String str : list) {
System.out.println(str);
}
我的想法是
运行时对于可预防的事情,将引发异常。
例如,始终可以避免 NullPointerExceptions,因此是未经检查的异常。
因此,编译器不会这样做。尽管像Intellij IDE或SonarLint这样的工具会向你显示一个警告,说它可能会抛出一个NullPointerException。
无论如何,程序员应该知道某些东西是否会抛出NullPointerException。