解决方法
拳击是机制(即从int到Integer); autoBoxing是编译器的功能,通过它可以为您生成装箱代码.
例如,如果你写代码:
// list is a List<Integer> list.add(3);
然后编译器会自动为您生成装箱代码;代码中的“最终结果”将是:
list.add(Integer.valueOf(3));
关于为什么Integer.valueOf()而不是新的Integer()的说明:基本上,因为JLS这么说:)引用section 5.1.7:
If the value p being Boxed is true,false,a byte,or a char in the
range \u0000 to \u007f,or an int or short number between -128 and 127
(inclusive),then let r1 and r2 be the results of any two Boxing
conversions of p. It is always the case that r1 == r2.