不,你不能做后者.
前者被称为autoboxing,并在Java v1.5中引入自动包装,其包装对象中的原语.
使用泛型和/或集合时,可以清楚地看到自动装箱的好处:
在“AutoBoxing and Auto-UnBoxing of Primitive Types”样本中,我们有:
之前(添加了自动装箱)
ArrayList list = new ArrayList();
list.add(0,new Integer(42));
int total = (list.get(0)).intValue();
后
ArrayList list = new ArrayList();
list.add(0,42);
int total = list.get(0);
如你所见,代码更清楚.
请记住文档上的最后一个注意事项:
So when should you use autoBoxing and unBoxing? Use them only when there is an “impedance mismatch” between reference types and primitives,for example,when you have to put numerical values into a collection. It is not appropriate to use autoBoxing and unBoxing for scientific computing,or other performance-sensitive numerical code. An Integer is not a substitute for an int; autoBoxing and unBoxing blur the distinction between primitive types and reference types,but they do not eliminate it.