Java 无法在Eclipse中将原语分配给对象数组

Java 无法在Eclipse中将原语分配给对象数组,java,eclipse,compiler-errors,autoboxing,Java,Eclipse,Compiler Errors,Autoboxing,我正在启动对象数组,如下所示: Object a[] = new Object[4]; a[0] = 1; //while assigning integer value, am getting an error: "Type mismatch: Cannot convert Integer to Object a[1] = 'A'; //while assigning char value, am getting an error: "Type mismatch: Cannot conver

我正在启动对象数组,如下所示:

Object a[] = new Object[4];

a[0] = 1; //while assigning integer value, am getting an error: "Type mismatch: Cannot convert Integer to Object
a[1] = 'A'; //while assigning char value, am getting an error: "Type mismatch: Cannot convert char to Object
a[2] = 12.33//while assigning integer value, am getting an error: "Type mismatch: Cannot convert double to Object
a[3] = "Hello"; //Accepting only string values.
请告诉我哪里出了问题?是配置问题吗?我正在使用:

Java Version jdk1.8.0_151,
jre1.8.0_151,

Eclipse Java EE IDE for Web Developers.
Version: Oxygen.2 Release (4.7.2)
Build id: 20171218-0600

int
float
double
char
都是
基元
类型,因此它们不能“转换”为
对象

String
s是
对象
s,因此可以在数组中添加

要实现可能需要的功能,可以将它们转换为等效对象:

Object a[] = new Object[4];
a[0] = Integer.valueOf(1); 
a[1] = Character.valueOf('A');
a[2] = Float.valueOf(12.33);
a[3] = "Hello";

我没有遇到你描述的问题。我认为它是自动装箱的,至少在我的配置环境中是这样

public static void main(String[] args) {
        // TODO Auto-generated method stub
        Object a[] = new Object[4];

        a[0] = 1; //while assigning integer value, am getting an error: "Type mismatch: Cannot convert Integer to Object
        a[1] = 'A'; //while assigning char value, am getting an error: "Type mismatch: Cannot convert char to Object
        a[2] = 12.33;//while assigning integer value, am getting an error: "Type mismatch: Cannot convert double to Object
        a[3] = "Hello"; //Accepting only string values.
        for(Object i:a) {
            System.out.println(i.toString());
        }
    }
右键单击->运行方式->Java应用程序, 控制台输出:

1
A
12.33
Hello

如果您使用的编译器符合性级别低于5,那么这正是您将收到的错误消息。请注意,这与系统上的Java版本不同。请参见此处的修复。

切勿使用
整数
构造函数。始终使用
Integer.of()
@niccord,因为这是一个很好的练习,您可能没有意识到。正如Zabuza所说,由于新的Java版本,它也被弃用了。它在版本9中被弃用了,我不知道。谢谢你的留言。你测试代码了吗?看起来(参见问题注释)自动装箱涵盖了这一点,可能是Eclipses编译器的一个bug。@Zabuza它实际上可以工作。我认为这是理所当然的。@McEmperon不是自动装箱的?这就是为什么。@StephanHogenboom我的错,它们确实是自动装箱的。@McEmperon,但我能够在另一个系统(我的Collegue系统)中存储相同的数据类型。@Praveen Eclipse是一个。您需要更新Eclipse。如果您已经有了最新的Eclipse版本,那么您应该。MyJava版本jdk1.8.0_151,jre1.8.0_151,Eclipse Java EE面向Web开发人员的IDE。版本:Oxygen.2发行版(4.7.2)构建id:20171218-0600这并没有真正解释或解决问题,也没有添加任何新内容。您的答案的内容只是“无法复制”,这可能应该是一个评论而不是答案,请参阅。