3
Integer i1 = new Integer(10);
Integer i2 = new Integer(20);
Integer i3 = i1+i2;

为什么在 Java 1.7 中这段代码可以正常工作,但在 java 1.4 中我有错误:

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

这是自动装箱问题还是在 java 1.7 中为 Integer 定义了运算符“+”?

那么如何在 java 1.4 中进行 Integer+Integer 呢?

4

4 回答 4

14

因为自动装箱和拆箱是从java 5 开始引入的。Java 1.4 无法理解这种语法。

如何进行整数+整数

您需要int使用intValue()获取原始值,然后对原始值进行添加。

于 2013-07-22T14:43:51.013 回答
11

Java 1.4 没有Integer变量的自动装箱。这出现在 Java 1.5 中。

查看Java 1.5 中的新增功能:自动装箱/拆箱

在此之前,您必须执行以下操作:

Integer i1 = new Integer(10);
Integer i2 = new Integer(20);
Integer i3 = new Integer(i1.intValue() + i2.intValue());
于 2013-07-22T14:43:47.937 回答
3

1.4 中的整数自动装箱1.7 中的整数可以。

你想要这样的东西:

int i3 = i1.intValue() + i2.intValue();
于 2013-07-22T14:44:51.690 回答
0

自动装箱/拆箱由 javac 完成。如果我们反编译 .class 我们将看到这是如何完成的:

    Integer i1 = new Integer(10);
    Integer i2 = new Integer(20);
    Integer i3 = Integer.valueOf(i1.intValue() + i2.intValue());
于 2013-07-22T15:10:08.807 回答