我有一个例子,我无法确定拳击和拆箱的数量,这些都发生在下面的Java代码中:
int x = 5;
Integer y = x + x;
从我的角度来看,我看到一种拳击(整数y = x + x)。我错了吗?是否还有拆箱?
答案 0 :(得分:2)
没有取消装箱。只是拳击正在发生。
首先计算的x+x
表达式为int
且装箱为Integer
。
因此,在整个声明中,Integer
没有转换为int
,因此没有取消装箱。
答案 1 :(得分:1)
根据你的问题,我们首先定义一个int值并将其分配给x变量(不需要拳击取消拳击),然后你要添加2个整数变量,不需要拳击取消拳击。 现在,您要为Integer分配一个int结果,意味着从原始数据类型更改为非原始数据类型。 Java autoboxing可以将int转换为整数,这里autoboxing就是装箱。