JAVA:为什么Object [] obj = {new Object [1],new Object [2]}而不是其他类?

时间:2013-12-04 09:48:22

标签: java

您好我已经看到Object [] obj = {new Object[1],new Object[2]}被允许,我不知道为什么会这样。如果我使用其他类而不是Object它会产生错误(如Integer,或ArrayList,甚至我的类GrandpaDadMe)?

4 个答案:

答案 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数组}

相关问题