在Java中,我可以编译
Object[] obj = {new Object[1], new Object[2]};
但是我无法编译
Object obj = {new Object(), new Object()};
在第一个示例中,我声明了一个对象
的一维数组
,并为其分配了一个二维数组
。在第二个中,我声明了一个 Object
并为其分配了一个一维数组。
如果 Java 数组扩展 Object
,为什么第二个代码片段不能编译?为什么是第一个?
最佳答案
将数组分配给对象不是问题,但您必须像这样创建数组
Object obj = new Object[] { new Object(), new Object[2] };
否则编译器将不知道它是一个对象数组而不是其他类型的数组。
关于Java : Why can't I declare an array as a simple Object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14664790/