2013-07-22 70 views
3
Integer i1 = new Integer(10); 
Integer i2 = new Integer(20); 
Integer i3 = i1+i2; 

爲什麼用Java 1.7的代碼工作正常,但在Java 1.4中我有錯誤:整數+整數在Java 1.4中

The operator + is undefined for the argument type(s) java.lang.Integer, java.lang.Integer 

這是自動裝箱問題或運算符「+」是整數定義java 1.7?

如何在java 1.4中繼續Integer + Integer呢?

+0

http://illegalargumentexception.blogspot.com/2008/08/java-int-versus-integer.html討論需求做什麼1.4。 – scrappedcola

+0

老兄你需要升級.... JRE版本。 –

+0

爲什麼不只用int而不是Integer? – 2013-07-22 15:01:24

回答

11

Java 1.4沒有自動裝箱的Integer變量。這在Java 1.5中出現了。

What's New in Java 1.5: Autoboxing/Unboxing

在此之前,你必須做這樣的事情:

Integer i1 = new Integer(10); 
Integer i2 = new Integer(20); 
Integer i3 = new Integer(i1.intValue() + i2.intValue()); 
14

由於自動裝箱和拆箱從java 5 onwards介紹。 Java 1.4無法理解該語法。

How to proceed Integer+Integer

你需要使用intValue()獲得原始int,然後做加法的原始值。

+1

自動裝箱和拆箱;) – jjhavokk

+0

@jjhavokk:已更新的回答。謝謝! – kosa

0

自動裝箱/拆箱是由javac的完成。如果我們反編譯的.class我們將會看到這是如何做到準確:

Integer i1 = new Integer(10); 
    Integer i2 = new Integer(20); 
    Integer i3 = Integer.valueOf(i1.intValue() + i2.intValue());