《Java编程思想》(第二版)第12章:执行期型别辨识(上)
来源:百度文库 编辑:神马文学网 时间:2024/04/28 10:33:18
RTTI的初期想法非常简单:当有一个指向基础型别base type的reference时,RTTI机制让你的一找出其所指的确切型别。
java中存在两种形式的rtti:传统的rtti;reflection机制
为什么要使用rtti?上面的目的就是原因,比如向下转型downcasting/强制转型.
Class对象以及他的装载时机。
如何取得某个类/对象的Class对象?
Class.forName("Gum");//不需要具体的对象,不过可能导致执行期异常,比如说找不到Gum类
x.class;
x.getClass();//需要具体的对象x
转型之前类型检查:(避免执行期异常ClassCastException)
1.传统转型(Shape)..
2.操作Class对象
3.instanceof if(x instanceof dog) //x是dog对象么?或者是dog的派生类对象么?
Java运用Class对象来执行其RTTI机制——即使你所作的只是转型动作。
Class类型里面的几个有用的函数
getInterfaces() :Class[] //返回一系列接口的class对象。
newInstance() :Object //虚拟构造函数:我不知道你具体是什么东西,不过你给我适当的生成一个
static Class.forName("Gum"):Class
isInterface():bool //判断某个Class对象是否为interface.
getName():string //得到Class对象所属的类型的名字。
getSuperclass()
总之,有了某个类的Class对象,他的祖宗十八代都可以查出来。
事实上。RTTI和多态上有重复的功能,先尝试使用多态,最后才使用RTTI,记住,不要滥用RTTI.
java中存在两种形式的rtti:传统的rtti;reflection机制
为什么要使用rtti?上面的目的就是原因,比如向下转型downcasting/强制转型.
Class对象以及他的装载时机。
如何取得某个类/对象的Class对象?
Class.forName("Gum");//不需要具体的对象,不过可能导致执行期异常,比如说找不到Gum类
x.class;
x.getClass();//需要具体的对象x
转型之前类型检查:(避免执行期异常ClassCastException)
1.传统转型(Shape)..
2.操作Class对象
3.instanceof if(x instanceof dog) //x是dog对象么?或者是dog的派生类对象么?
Java运用Class对象来执行其RTTI机制——即使你所作的只是转型动作。
Class类型里面的几个有用的函数
getInterfaces() :Class[] //返回一系列接口的class对象。
newInstance() :Object //虚拟构造函数:我不知道你具体是什么东西,不过你给我适当的生成一个
static Class.forName("Gum"):Class
isInterface():bool //判断某个Class对象是否为interface.
getName():string //得到Class对象所属的类型的名字。
getSuperclass()
总之,有了某个类的Class对象,他的祖宗十八代都可以查出来。
事实上。RTTI和多态上有重复的功能,先尝试使用多态,最后才使用RTTI,记住,不要滥用RTTI.
《Java编程思想》(第二版)第12章:执行期型别辨识(上)
《Java编程思想》(第二版)第12章:执行期型别辨识(下)
第二章 苏霍姆林斯基教育思想 第三节 第四节试题答案
《JAVA编程思想 3rd》PDF 中文 源码 下载
JAVA编程
C#高级编程(第2版)
第二章(上)
Java多线程编程总结(转载)
JAVA编程规范
Java编程规则
Java多线程编程总结
Java多线程编程总结
Java多线程编程详解
ubuntu java编程环境
Java多线程编程总结
深入java虚拟机第9章, 垃圾收集(1)
JAVA正则表达式(上)
JAVA培训Java多线程编程精要
大型Java分布式应用纵横谈 - Java 编程 - 编程开发 - 伊甸网
JAVA编程电子书专题下载
Java泛型编程指南
Java 5.0 多线程编程实践
aop和aspectj - Java编程
Java泛型编程指南