JAVA:为什么Object[]obj={new Object[1],new Object[2]}而不是其他类?
您好,我已经看到允许使用JAVA:为什么Object[]obj={new Object[1],new Object[2]}而不是其他类?,java,Java,您好,我已经看到允许使用Object[]obj={new Object[1],new Object[2]},我不知道为什么会这样。如果我使用其他类而不是Object,它会产生错误(比如Integer或ArrayList,甚至我的类比如grandge、Dad和Me)?obj在这里只是一个对象数组。另外,数组也是一个对象,那么问题出在哪里呢。对象是Java中任何类的基类 Object [] obj = {Element Should be Objects} 因此,数组也是一个对象。您的签名满足条件
Object[]obj={new Object[1],new Object[2]}
,我不知道为什么会这样。如果我使用其他类而不是Object
,它会产生错误(比如Integer或ArrayList,甚至我的类比如grandge
、Dad
和Me
)?obj
在这里只是一个对象数组。另外,数组
也是一个对象
,那么问题出在哪里呢。对象是Java中任何类的基类
Object [] obj = {Element Should be Objects}
因此,
数组
也是一个对象。您的签名满足条件,任何对象的数组
因为
新对象[1]
是一个数组
,它也是一个对象
,因为每个类都扩展了对象
,因为即使是对象[]
也是一个对象,所以它不会抛出任何错误。但实际上,您实际做的是将数组分配给对象
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
Object[]obj={可以有任何类型的对象,因为默认情况下每个类都扩展对象类}
X[]obj={X类对象数组}
例如:
String[]obj={字符串对象数组}
Granpa[]gandobj={Granpa对象数组}
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