当我使用jdk1.7在下面运行这些代码时,test1()和test2()都会导致空指针异常。
但是当我切换到jdk1.8时,test1()输出null,而test2()导致null指针异常。
public static void test1() {
Map<String, Boolean> m = new HashMap<>();
Boolean b = true ? m.get("a") : false;
System.out.println(b);
}
public static void test2() {
Map<String, Boolean> m = new HashMap<>();
Boolean a = m.get("a");
Boolean b = true ? a : false;
System.out.println(b);
}
您能告诉我条件运算符在jdk1.7和jdk1.8中实际起作用吗?