当我在Intellij IDEA中编写以下代码时,在new关键字后出现此错误:
整数 i2 = 新整数(5);
我该如何解决这个问题?
我只是试图理解以下代码行之间的差异:
int i = 5; 整数 i2 = 新整数(5);
主要是我开始看关于包装类型的看法。
您遇到的错误可能源于您直接使用
Integer
类的构造函数,这不是现代 Java 中推荐的方法。在 Java 中,存在原始数据类型(如 int
)及其相应的包装类(如 Integer
),允许将原始值视为对象。 Java 编译器自动执行一个称为自动装箱的过程,该过程在基本类型及其相应的包装类型之间进行转换。
第
int i = 5;
行声明了一个整型变量,并将原始值 5 赋给它。这既简单又高效。
行
Integer i2 = new Integer(5);
使用带有 Integer
参数的构造函数创建 int
类的实例。虽然这在技术上是正确的,但它不是创建包装类实例的推荐方法。相反,您应该让 Java 通过自动装箱处理转换。
如果您使用的是 Java 5 或更高版本,则可以使用自动装箱和自动拆箱来无缝处理基元类型及其相应的包装类型。这意味着您可以编写如下代码:
Integer i2 = 5; // Autoboxing
int i = i2; // Auto-unboxing
如果要将
int
转换为 Integer
,可以直接将 int
值赋给 Integer
变量,而无需使用构造函数。
要修复错误,只需删除
new Integer(5)
部分并直接分配整数值即可:
Integer i2 = 5; // Autoboxing
这将使用自动装箱自动创建一个值为 5 的
Integer
对象。
请记住,使用自动装箱提供了一种更清晰、更简洁的方式来处理原始类型及其包装类。