由於AutoBoxing的存在,以下代碼在JDK1.5的環境下可以編譯通過並運行。
- int i = 0;
- Integer wrapperi = i;
還有其他方法?
JDK1.5為Integer增加了一個全新的方法:
- public static Integer valueOf(int i)
以下代碼在JDK1.5的環境下可以編譯通過並運行。
附:AutoBoxing與UnBoxing帶來的轉變
在JDK1.5之前,我們總是對集合不能存放基本類型而耿耿於懷。
以下代碼在JDK1.5中成為了可能,試想下在JDK1.5之前該如何實現這段代碼?
- int x = 1;
- Collection collection = new ArrayList();
- collection.add(x);//AutoBoxing,自動轉換成Integer.
- Integer y = new Integer(2);
- collection.add(y + 2); //y + 2為UnBoxing,自動轉換成int。之后再次轉換為Integer。
此特性同樣適用於Map
- Map map = new HashMap();
- int x = 1;
- Integer y = new Integer(2);
- int z = 3;
- map.put(x,y + z);//x自動轉換成Integer。y+z自動轉換成int。之后再次轉換為Integer。
- int i = 0;
- Integer wrapperi = Integer.valueOf(i);
- 本文轉自http://denverj.iteye.com/blog/745422 感謝作者