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

use*_*580 7 java arrays mixed compiler-errors object

这是它的样子

public Object[] settings = {true, true, false, 1, true, false, 10, 10, 20, false, false, false, false, false, {true, true, true, true}};
Run Code Online (Sandbox Code Playgroud)

错误:

 illegal initializer for java.lang.Object
Run Code Online (Sandbox Code Playgroud)

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

Static Error: Array initializer must be assigned to an array type
Run Code Online (Sandbox Code Playgroud)

vik*_*ter 7

像这样初始化数组:

public Object[] settings = new Object[]{true, true, false, 1};
Run Code Online (Sandbox Code Playgroud)

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

new Object[]{true, true, false, 1, {true, false} }; //<--- Illegal initializer
Run Code Online (Sandbox Code Playgroud)

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

public Object[][] settings = new Object[][]{{true, true}, {false, 1, 3}};
Run Code Online (Sandbox Code Playgroud)

使用ArrayListLinkedList在哪里可以创建您喜欢的任何阵列.


更新

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

new Object[]{true, false, 1, new Object[]{true, false} };
Run Code Online (Sandbox Code Playgroud)