[code="java"]
Object[] obj = {"t1","t2"};
String[] str1 = (String[])obj;
System.out.println(str1.length);
[/code]
这段代码能编译,但是运行报错,不能强制转换。为什么?诚心请教!
System.out.println(obj[0].getClass());能得到class java.lang.String
obj中两个类型既然都知道是String为什么不能强制转换,如果数组不能强制转换,为什么编译不报错。
把Object[] obj = {"t1","t2"}; (这个obj类型是java.lang.Object)
用Object[] obj = new String{"t1","t2"};替换是可以运行。
(这样obj类型是java.lang.Object)是不是与这个有关系。
[b]问题补充:[/b]
用Object[] obj = new String{"t1","t2"};替换是可以运行。
(这样obj类型是java.lang.String)是不是与这个有关系。