Java中允许向上和向下转型
2014-08-27 10:26
260 查看
对于这个现象我们可以这么解释:Java中允许向上和向下转型,但是这个转型是否成功是根据Java虚拟机中这个对象的类型来实现的。Java虚拟机中保存了每个对象的类型。而数组也是一个对象。数组的类型是[Ljava.lang.Object。把[Ljava.lang.Object转换成[Ljava.lang.String是显然不可能的事情,因为这里是一个向下转型,而虚拟机只保存了这是一个Object的数组,不能保证数组中的元素是String的,所以这个转型不能成功。数组里面的元素只是元素的引用,不是存储的具体元素,所以数组中元素的类型还是保存在Java虚拟机中的。
根据上面的解释,我们可以把这个问题归纳到下面这个模型:
Object objs[]=new Object[10];
String strs[]=(String[])objs;
根据上面的解释,我们可以把这个问题归纳到下面这个模型:
Object objs[]=new Object[10];
String strs[]=(String[])objs;
相关文章推荐
- Java向上转型与向下转型(good)
- JAVA的向上转型与向下转型(二)
- Java中的向上转型 & 向下转型 ( OOP )
- java中向上转型(upcast)和向下转型(downcast)
- JAVA中的向上转型与向下转型
- Java多态(利用向上向下转型和反射机理)
- java向上转型 向下转型(upcasting downcasting)
- Java向上转型与向下转型
- Java 向上转型与向下转型
- java 对象的向上、向下转型
- Java 向下和向上转型
- JAVA中的向下转型(downcasting)及泛型与向上转型(upcasting)及RTTI、反射机制
- java 向上转型和向下转型
- java向上转型和向下转型
- JAVA中的向上转型与向下转型
- Java向上转型与向下转型
- Java 向上转型和向下转型
- Java 向上转型和向下转型
- Android学习第八天----java中的向上转型和向下转型
- java 向上转型和向下转型(转载)