您好我已经看到Object [] obj = {new Object[1],new Object[2]}
被允许,我不知道为什么会这样。如果我使用其他类而不是Object
它会产生错误(如Integer,或ArrayList,甚至我的类Grandpa
,Dad
和Me
)?
答案 0 :(得分:4)
因为即使Object[]
是一个对象,也就是它没有抛出任何错误的原因。但实际上,您实际在做的是将数组分配给Object
。
Object[][] obj = {new Object[1],new Object[2]}; // proper way
Object[] obj = {new Object[1],new Object[2]}; // this works because Object[] is treated as an Object
这不适用于String
或其他任何内容,因为String
数组中的每个元素都必须是字符串而不是String
数组。
String[][] obj = {new String[1],new String[2]}; // proper way as its a 2d array where each element in itself is a 1d array.
String[] obj = {new String[1],new String[2]}; // this won't because each element in String array must be a String
String[] obj = {new String("1"),new String("2")}; // this will work as each element is a string
答案 1 :(得分:2)
您的签名满足条件,任何对象的数组。
Object [] obj = {new Object[1],new Object[2]}
因为new Object[1]
是Array
而且也是Object
,因为每Class extends Object
答案 2 :(得分:0)
obj
这里只是一个Object数组。此外Array
也是Object
那么问题是什么。 Object是Java中任何类的基类。
Object [] obj = {Element Should be Objects}
所以Array
也是一个对象。
答案 3 :(得分:0)
Object [] obj = {Can have any type of Object because every class by default extends Object Class}
X [] obj = { Array of objects of X Class}
示例:
String [] obj = {String String对象}
Granpa [] gandobj = {Granpa Objects数组}