Java中混合类型和混合数组类型的数组Object[]无法编译

12

这就是它的样子

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

{true, true, true, true} 不是有效的 Java 语法,除非在 new something[] {true, true, true, true}something[] something = {true, true, true, true} 中使用。 - user253751
1个回答

13

像这样初始化数组:

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

然而,您不能在同一维度中同时拥有数组和值,因为每个维度中的元素必须是相同类型的。(在我们的情况下,严格来说应该是数组“{}”对象
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} };

public Object[] settings = {true, true, false, 1, true, false, 10, 10, 20, false, false, false, false, false, new Object[] {true, true, true, true}}; 对我有用,谢谢。 - user3435580

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接