当一个人做这样的事情时,
int j = null;
导致 类型不匹配:无法将null转换为int。
现在
Integer i = null;
int n = i;
System.out.println(n);
为什么打印n会导致 NullPointerException ,即使原始数据类型不允许使用null。
为什么它没有导致 类型不匹配:无法将null转换为int。
答案 0 :(得分:3)
实际上int n = i;
会在NullPointerException
取消装箱时抛出Integer
,因为取消装箱会涉及取消引用i
中存储的空引用。
答案 1 :(得分:3)
Integer表达式可以具有空值。如果您的程序尝试autounbox null,它将抛出NullPointerException
答案 2 :(得分:1)
您无需打印n
。当您尝试取消装箱为空时,NPE会抛出上一行。