jdk14使用了更加明确的空指针异常,对查bug找问题起到了极大的帮助,可以精确定位到空指针的对象,不像之前只有一个NullPointerException抛出来,根据堆栈信息只能定位到行,jdk14之后再也不用根据经验猜来测去的了;
比如这段代码,一行中有多个变量:
String s1 = "x";
String s2 = null;
System.out.println(s1.toString() + s2.toString());
jdk14之前只能打印空指针异常:

而jdk14之后能直接告诉你哪个变量是空的:

再比如这段代码,一个对象一连串的点操作:
List<String> list = new ArrayList<>();
list.add("a");
list.add(null);
System.out.println(list.get(1).length());
jdk14可以直接指明到哪一步是空的,而不用像以前一样猜list是空还是get()方法返回空了:

虽然这个新特性没啥新功能,但也算是很实用了;
JDK14在处理空指针异常时提供了更明确的信息,能直接指出哪个变量或对象操作导致了空指针,简化了调试过程。例如,对于包含多个变量的操作或对象的链式调用,现在可以快速定位问题所在,而不再需要通过猜测和堆栈跟踪来查找问题。这是一个虽小但实用的改进。
504

被折叠的 条评论
为什么被折叠?



