质量推广提醒 - 内部类构造函数中的新空检查
💡
原文英文,约300词,阅读约需2分钟。
📝
内容提要
OpenJDK质量小组正在推动使用OpenJDK构建测试FOSS项目,以提升发布质量。Java 25将确保内部类构造函数的封闭实例引用始终非空,并在JDK 25中引入空检查,这可能导致使用反射等方法时出现新的空指针异常。
🎯
关键要点
- OpenJDK质量小组正在推动使用OpenJDK构建测试FOSS项目,以提升发布质量。
- Java 25将确保内部类构造函数的封闭实例引用始终非空。
- JDK 25将引入空检查,可能导致使用反射等方法时出现新的空指针异常。
- Java语言规范要求内部类构造函数的使用场所进行空检查,但不强制要求在声明处进行检查。
- 从JDK 25开始,javac将为内部类构造函数的封闭实例发出空检查。
- 使用核心反射、方法句柄或直接字节码调用传递空引用的代码可能会导致新的空指针异常。
- 可以通过标志-XDnullCheckOuterThis=(true|false)来防止这些额外检查的发出,但这只是临时解决方案。
➡️