Java语言基础:RTTI

原创 2011年03月28日 23:51:00

 

1.  每个类都有一个Class对象,当我们在运行期第一次生成类的实例时,JVM就加载这个类的Class对象,然后用这个Class对象来创建类实例;Class类似于Delphi中的引用类TClass,用于保存类的运行时信息。
 
2.  Class的static方法forName()用于查找某个类的Class对象,如果forName找不到你要的类的Class对象,会抛出ClassNotFoundException异常:
 
3.  查找类的Class对象的另一个方法是直接调用类.class,这会在编译期就检查是否正确,因此不需要捕获异常:
 
4.  判断两个对象是否属于同一个类,可以通过比较他们的class的方式,通过对象的getClass()方法可以得Class对象:
 
5.  要判断对象是否继承或属于某个类,可以通过两个方法:1是使用instanceof关键字,2是使用Class.isInstance方法:
 
6.  Class.NewInstance可以创建一个类实例,该类必须有默认构造函数,否则会抛出InstantiationException异常:
 
7.  Class还提供了一些更强大的方法,可以得到类的更多信息,比如:getSuperclass: 取得父类的Class对象;getInterfaces: 取得实现的接口数组;还有其他很多方法,详见JavaDoc。

 

Java RTTI和反射的区别?

网上看到他们的区别是:如果不知道一个对象的准确类型,RTTI会帮助我们调查。但却有一个限制:类型必须是在编译期间已知的。而反射使我们能在运行期间探察一个类,RTTI和“反射”之间唯一的区别就是:对RT...
  • u011694328
  • u011694328
  • 2016年08月05日 18:19
  • 811

java的RTTI

在Java中,RTTI表现在:1。Class对象,是RTTI的核心,每个类都有一个class对象。每当编写并且编译一个新类,就会产生一个Class对象(被保存在同名的.class文件当中)2。inst...
  • FG2006
  • FG2006
  • 2011年05月08日 18:22
  • 5663

RTTI机制与作用

一、RTTI(Run-Time Type identification),通过运行时类型信息,程序能够使用基类的指针或引用来检查这些指针或引用所指向的对象的实际派生类型。面向对象的编程语言,想C++,...
  • gogoky
  • gogoky
  • 2016年05月04日 21:15
  • 2373

JavaRTTI和反射基本讲解

public class Test { public static void main(String[] args) { new Shape().draw(); //每一个类都对应一个Cla...
  • u012922219
  • u012922219
  • 2016年10月01日 22:23
  • 306

JAVA的一些常识(绑定,多态,反射,RTTI)

多态何为多态?嗯就是多种状态,如果前面要加上代词的话,我想应该是对象。java多态可以分为三种,即重写多态、重载多态、泛型多态(通常意义上的多态指的是重写多态)。 重写多态:子类可以将父类的任意虚方...
  • nvnnv
  • nvnnv
  • 2016年03月28日 18:37
  • 692

Java语言基础面试题及答案

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?  可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。 2、Java有没有goto?...
  • develop_wangzhi
  • develop_wangzhi
  • 2017年04月21日 11:32
  • 1116

Java中的RTTI与反射

个人理解,可能有误。理解自《java编程思想》。 首先,什么是RTTI? RTTI(run-time type information)指的是Java在运行时能够获得或判断某个对象的类型信。以Sh...
  • do_smile
  • do_smile
  • 2015年06月24日 17:02
  • 493

什么是RTTI

参考:  http://www.cnblogs.com/vamei/archive/2013/04/14/3013985.html 运行时类型识别(RTTI, Run-Time Ty...
  • duguxiaobiao
  • duguxiaobiao
  • 2017年08月28日 17:19
  • 196

深入浅出MFC:MFC中的的RTTI实现

在了解了MFC的基本运行的流程之后,让我们再来看看一个特殊的问题:如何在运行的过程中动态地保存一个对象的类型信息并判断得到其类型 虽然在很早之前,C++就已经原生的实现了RTTI特性,只需要通过使程序...
  • qq_30168505
  • qq_30168505
  • 2016年09月29日 09:51
  • 397

C++对象模型之RTTI的实现原理

RTTI是Runtime Type Identification的缩写,意思是运行时类型识别。C++引入这个机制是为了让程序在运行时能根据基类的指针或引用来获得该指针或引用所指的对象的实际类型。但是现...
  • ljianhui
  • ljianhui
  • 2015年06月14日 03:11
  • 4961
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java语言基础:RTTI
举报原因:
原因补充:

(最多只允许输入30个字)