java运行期类型鉴定
2016-06-13 11:10
232 查看
运行期类型识别?RTTI?
假如我们有一个基类的引用,这个引用也可以作为子类的引用嘛,现在我们想知道这个引用的类型到底是啥?
当从子类到基类之后有很多的信息都会丢失掉,比如有一个人类的对象可以看成普遍意义上的一个对象,因此也可以往上变为对象,但是我们就不会知道这个对象是不是人了。
RTTI正是在运行期间,识别对象的类型。
遇到特殊的程序设计问题,需要知道引用的具体类型,才能解决问题。
类的对象的产生都需要Class对象,forName(arg0)可以获得对象的Class对象,进而产生这个类的实例。
java编译器不允许向下的自动转换,除非明确指定。
Circle c = (Circle)b;
关键字instanceof告诉我们一个对象是不是特定类的实例。
向下转换时可以用来做检查。
isInstanceof()则可以直接对对象实例使用
Class对象很重要,在这里
RTTI和反射机制
假如我们有一个基类的引用,这个引用也可以作为子类的引用嘛,现在我们想知道这个引用的类型到底是啥?
当从子类到基类之后有很多的信息都会丢失掉,比如有一个人类的对象可以看成普遍意义上的一个对象,因此也可以往上变为对象,但是我们就不会知道这个对象是不是人了。
RTTI正是在运行期间,识别对象的类型。
遇到特殊的程序设计问题,需要知道引用的具体类型,才能解决问题。
类的对象的产生都需要Class对象,forName(arg0)可以获得对象的Class对象,进而产生这个类的实例。
java编译器不允许向下的自动转换,除非明确指定。
Circle c = (Circle)b;
关键字instanceof告诉我们一个对象是不是特定类的实例。
向下转换时可以用来做检查。
isInstanceof()则可以直接对对象实例使用
Class对象很重要,在这里
RTTI和反射机制
相关文章推荐
- javaWeb开发过程中小细节总结(1)
- java TreeMap源码解析
- Java学习之集合框架(中)
- Spring MVC 获取请求参数的几种方法
- Java或Web中解决所有路径问题
- Mybatis学习与Spring MVC 的集成(6)
- Mybatis学习之集成spring3(5)
- JavaBean 初步(二) 之 JavaBean 的属性
- java文件上传和下载
- JAVA DATE类型比较
- Dubbo与Zookeeper、Spring整合使用
- spring mvc中的初始化设置
- Java学习之集合框架(上)
- struts action不在是一个单例类
- eclipse标准版开发web项目需要的插件
- java学习:为JAVA正名:关于Java性能的9个谬论
- Java字节、十进制、十六进制、字符串之间的相互转换
- Java基础知识:java.util.Collection集合
- [LeetCode]Next Permutation java leetcode
- Struts2 Result 参数详解