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时就发生了空指针异常