• 2:当把一个原始类型加到集合中时需要进行转换 • (第一部分) • //old 1.4 style • Integer intObj1 = new Integer(22); • int i = intObj1.intValue();
• System.out.println(i); //output: 22 • //new 1.5 style • Integer i =new Integer(3); • int j = i; //auto-unboxing
• System.out.println(j); //output: 3 (第二部分) • //old 1.4 style • ArrayList al1 = new ArrayList();
• al1.add(new Integer(24)); //or al1.add(Integer.valueOf(24)) • //new 1.5 style • ArrayList a = new ArrayList();
• a.add(4); // auto-boxing conversion 编译为.class模块后,我们使用DJ Java Decompiler重新反编译得到以下代码: (第一部分) • Integer i = new Integer(3); • int j = i.intValue(); ( 第二部分) • ArrayList a = new ArrayList(); • a.add(Integer.valueOf(4)); • 从上现可以看出转换的工作都由编译器完成了! • 注:当包装类型为null时,转换会发生NollPointerException。
