Integer 和 int 比较报空指针
问题
public class Demo {
public static void main(String[] args) {
Integer a = null;
Integer b = 1;
System.out.println(a == b); // false
}
}
public class Demo {
public static void main(String[] args) {
Integer a = null;
System.out.println(a == 1); // 空指针异常
}
}
包装类 和 基本数据类型 比较时,会进行拆箱操作,如果此时包装类为空,则会报空指针异常
解决
public class Demo {
public static void main(String[] args) {
Integer a = null;
Integer b = 1;
System.out.println(Objects.equals(a, b)); // false
System.out.println(Objects.equals(a, 1)); // false
}
}
推荐使用 Objects.equals 进行两个值的比较