java中没有编译的混合类型和混合数组类型数组Object []

时间:2014-03-21 08:19:47

标签: java arrays object compiler-errors mixed

以下是它的样子

public Object[] settings = {true, true, false, 1, true, false, 10, 10, 20, false, false, false, false, false, {true, true, true, true}};

错误:

 illegal initializer for java.lang.Object

在另一个IDE中,我收到此错误。

Static Error: Array initializer must be assigned to an array type

1 个答案:

答案 0 :(得分:7)

像这样初始化数组:

public Object[] settings = new Object[]{true, true, false, 1};

但是,您不能在同一维度中拥有数组和值,因为维度中的每个元素都必须具有相同的类型。 (在我们的案例中严格array '{}'Object

new Object[]{true, true, false, 1, {true, false} }; //<--- Illegal initializer

而只是在数组中使用多个维度和组值:

public Object[][] settings = new Object[][]{{true, true}, {false, 1, 3}};

使用ArrayListLinkedList可以创建您喜欢的任何数组。


更新

事实上,可以混合使用这样的元素:

new Object[]{true, false, 1, new Object[]{true, false} };