java - 为什么在编译时不检查空指针异常,例如在 Java 中迭代空集合而不是运行时异常时?
问题描述
每当我Collection
在 Java 中迭代 a 时,它都会在运行时null
抛出 a 。NullPointerException
为什么没有编译时检查?
例如这里:
List<String> list = null;
for (String str : list) {
System.out.println(str);
}
解决方案
我的想法是
对于可预防的事情,会抛出 RuntimeExceptions。
例如,NullPointerExceptions 总是可以避免的,因此是未经检查的异常。
所以,编译器不会那样做。尽管诸如 Intellij IDE 或 SonarLint 之类的工具会向您显示一条警告,说明它可能会引发 NullPointerException。
无论如何,程序员应该知道某些东西是否会抛出 NullPointerException。
推荐阅读
- java - Socket Server 控制器 Android App,Socket 错误
- reinforced-typings - 指定 net5.0-windows 时,Reinforced.Typings 失败并显示 MSB6006
- ios - Alamofire 5中未设置授权标头?
- flutter - 颤振 - 如何使用颤振可拖动/拖动目标将图像放置在图像内
- android - 当Android应用程序背景时,如何通过方法中途恢复
- pandas - 无法在熊猫中找到日期
- node.js - 如何同时处理多个发布请求,同时将其中一个保存在数据库中?
- javascript - Google Spreadshirt 导出更多特定的工作表
- java - 如何检查editText中是否有空格并以编程方式填充它们
- c - C 中的严格别名违规以及如何编写符合要求的代码?