为什么将 Integer 与 int 进行比较可以在 Java 中抛出 NullPointerException?
观察这种情况让我感到非常困惑:
Integer i = null;
String str = null;
if (i == null) { //Nothing happens
...
}
if (str == null) { //Nothing happens
}
if (i == 0) { //NullPointerException
...
}
if (str == "0") { //Nothing happens
...
}
因此,由于我认为首先执行装箱操作(即.java尝试从中提取int值)并且比较操作的优先级较低,因此会引发异常。null
问题是:为什么它在Java中以这种方式实现?为什么拳击具有更高的优先级,然后比较参考文献?或者为什么他们没有在拳击之前实施验证?null
目前,当使用包装的基元抛出并且未使用真正的对象类型抛出时,它看起来不一致。NullPointerException