Java中有两种变量类型,一种是对象,其祖类都是java.lang.Object;另一种是数值类型, 如int, short, char等。由于boolean, int, short, char是数值类型等不是对象,在一些必须使用对象的场合就必须使用Boolean, Integer, Short, Character 等等,这样就需要在对象和数值之间相互转换。Java 5.0中的 Autoboxing & Unboxing 就是专为简化这个过程而设立的。
以前:
Integer i = new Integer(0);
int bar = i.intValue();
Java 5.0:
Integer i = 0;
int bar = i;
i++; // 甚至可以这样
是不是比起以前方便了许多,不过原理和以前没有改变,只是JRE5.0自动地进行了转换。
使用Collection必须使用Object,所以在下例中:
List list = new ArrayList();
list.add(new Integer(10));
5.0新增autobox后,可修改为:
List list = new ArrayList();
list.add(10);
然后可以优化为:
List<Integer> list = new ArrayList<Integer>();
list.add(10);