无法在Eclipse中将原语分配给Object数组

时间:2019-06-04 13:21:35

标签: 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 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

3 个答案:

答案 0 :(得分:4)

intfloatdoublechar都是primitive类型,因此不能将它们“转换”为Object。 / p>

StringObject,因此可以将其添加到数组中。

要实现您可能想要的目标,可以将它们转换为等效的对象:

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

答案 1 :(得分:4)

这正是在使用低于5的编译器遵从性级别时将得到的错误消息。请注意,这与系统上的Java版本不同。在https://stackoverflow.com/a/24591529/11595728处查看修复程序。

答案 2 :(得分:1)

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

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