Java基本类型包装类的equals比较

54 阅读1分钟

本文原发布于简书(2021.10.08 11:50:01)

近期在进行Integer类型相等判断时遇到了空指针:

Integer a = null;
boolean b = a == 1;

第二行出现了空指针异常。想了想发现是Java在自动拆箱的时候把代码变成了这样:

Integer a = null;
boolean b = a.intValue() == 1;

idea实际上也显示了提醒: 提示:a的拆箱可能会造成NullPointerException

故针对基本类型包装类的比较,应写为:

Integer a = null;
boolean b = Objects.equals(a, 1);

END