Java取消装箱的意外行为 Map Map=newhashmap(); 图.put(1,1); int值=map.get(2); 系统输出打印Ln(v);
在执行上述代码时,我发现以下异常Java取消装箱的意外行为 Map Map=newhashmap(); 图.put(1,1); int值=map.get(2); 系统输出打印Ln(v);,java,wrapper,primitive-types,unboxing,Java,Wrapper,Primitive Types,Unboxing,在执行上述代码时,我发现以下异常 线程“main”java.lang.NullPointerException中的异常 但如果在第三行的placeint基元类型中放置一个整数,则所有操作都正常。所以,这里的问题是,为什么java拆箱不在内部处理这个空值,并将空值赋给名为value的变量 所以,这里的问题是,为什么java拆箱不在内部处理这个空值,并将空值赋给名为value的变量 您的值变量是int原语。原语不能有null值。只有对象可以。int是基本类型 null不是基元类型,它表示不存在的对象
线程“main”java.lang.NullPointerException中的异常
但如果在第三行的placeint基元类型中放置一个整数,则所有操作都正常。所以,这里的问题是,为什么java拆箱不在内部处理这个空值,并将空值赋给名为value的变量
所以,这里的问题是,为什么java拆箱不在内部处理这个空值,并将空值赋给名为value的变量
您的
值
变量是int
原语。原语不能有null
值。只有对象可以。int是基本类型
null
不是基元类型,它表示不存在的对象引用,不能自动装箱到基元类型
int值=null
可以被看作是你所问问题的更“明确”的版本,它甚至不编译。使用Integer
notint
Map<Integer, Integer> map = new HashMap<>();
map.put(1, 1);
int value = map.get(2);
System.out.println(v);