Integer i = null;
if (i == 3)
为什么上面的第二行抛出一个 NullPointerException
,恕我直言,这只有一个含义,即包装对象 i
将被拆箱,从而产生异常,例如:
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(null);
int x = list.get(0);
编辑:你能为我提供一些格式文档吗?
最佳答案
它会抛出 NPE,因为编译器会为您执行以下“魔法”:
Integer i = null;
if (i.intValue() == 3)
显然,当 i
为 null
时,i.intValue()
会抛出 NPE。
关于java - 根据原始值检查空包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177585/