使用jdk1.7和jdk1.8时关于条件运算符的不同行为

时间:2019-02-13 05:03:46

标签: java null conditional-operator

当我使用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中实际起作用吗?

0 个答案:

没有答案