问题
•
• 1:在原始类型与包装类型间转换
•
•
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。