Java中允许向上和向下转型,但是这个转型是否成功是根据Java虚拟机中这个对象的类型来实现的。Java虚拟机中保存了每个对象的类型。而数组也是一个对象。
如:
Object objs[]=new Object[10];
String strs[]=(String[])objs;
抛出异常:Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
修改一下:
String strs[]=new String[10];
Object objs[]=strs;
正常通过编译。 |