Stu*_*ent 12 java arrays multidimensional-array
在Java中,我可以编译
Object[] obj = {new Object[1], new Object[2]};
Run Code Online (Sandbox Code Playgroud)
但我无法编译
Object obj = {new Object(), new Object()};
Run Code Online (Sandbox Code Playgroud)
在第一个例子中,我声明one-dimensional array的Objects,并为它分配一个two-dimensional array.在第二个我宣布一个Object并为其分配一维数组.
如果Java数组扩展Object,为什么第二个代码片段不能编译?为什么第一个?
Rob*_*ber 12
将数组分配给Object不是问题,但您必须像这样创建数组
Object obj = new Object[] { new Object(), new Object[2] };
Run Code Online (Sandbox Code Playgroud)
否则,编译器将不知道它是一个Object数组而不是其他类型的数组.