Java包装类型与三元运算符联合使用的空指针异常的坑

public class BoxInt {

    private Integer id;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public static void main(String[] args) {

        BoxInt bi = new BoxInt();
        Integer val = bi != null ? bi.getId() : 0;
        System.out.println(val);

    }
}

  代码执行结果是空指针异常,异常原因是三元运算符在进行计算时,推断的类型是基本类型int,当bi.getId()为null转为int时就发生了空指针异常

posted @ 2024-07-16 10:09  bf378  阅读(4)  评论(0编辑  收藏  举报