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()方法返回空了:
虽然这个新特性没啥新功能,但也算是很实用了;