反射:运行时的类信息
来源:互联网 发布:2017人工智能最新进展 编辑:程序博客网 时间:2024/06/07 06:19
RTTI如果想要知道某个对象的类型信息,这个类型在编译时必须已知,这样才能使用RTTI识别它。
假设你获取了一个指向某个并不在你的编程空间中的对象的引用,在编译时你的程序根本没法获知这个对象所属的类(假设从磁盘文件或者网络连接中获取了一串字节代表一个类)。
反射提供了一种机制:用来检查可用的方法,并返回方法名。
人们想要在运行时获取类的信息的另一个动机,是希望提供在跨网络的远程平台上创建和运行对象的能力,这被称为RMI(远程方法调用),它允许一个java程序将对象分布到多台机器上。
Class类和java.lang.reflect类库一起对反射的概念进行了支持。
反射机制没有什么神奇之处:当通过反射与一个未知类型的对象打交道时,JVM只是简单的检查这个对象,看它属于哪个特定的类(就像RTTI那样)。在用它做别的事情之前必须先将那个类的Class对象加载进来。因此,那个类的.class文件对于JVM来说必须是可获得的,要么在本机上,要么可以通过网络取得。
所以RTTI和反射之间真正的区别在于:对于RTTI,编译器在编译时打开和检查.class文件;对于反射,.class文件在编译时是不可获取的,所以在运行时打开和检查.class文件。
0 0
- 14.6 反射:运行时的类信息
- 反射:运行时的类信息
- Java 反射 —— 运行时的类型信息
- 反射(Reflection):运行期的类信息
- java 反射机制:运行时的类信息(为框架服务的Bug存在)
- 反射 - 获取运行时方法的信息
- RTTI 运行时类型信息 与 Reflect 反射
- 访问运行时类的信息
- 反射_01概述和反射中的运行时类型以及查看类型信息
- 反射01:通过反射获取类的信息
- 运行时进程的信息
- 通过反射类查看类的信息
- 利用反射,输出类的所有信息
- java反射获取类的信息
- Java反射之获取类的信息
- 反射获取类的结构信息
- 反射得到类的内部信息
- 关于运行时的方法使用:反射
- servlet路径访问问题
- Android 6.0 新功能及主要 API 变更
- class和ID的区别
- 122. Best Time to Buy and Sell Stock II**
- 使用Vitamio打造自己的Android万能播放器(1)——准备
- 反射:运行时的类信息
- 51NOD 1672 区间交 线段树
- MATLAB 编程风格指南
- Android完全退出程序、线程
- ViewPager无限轮播+轮播时下面的小点跟着走
- 【bzoj1502】 NOI2005—月下柠檬树
- 状态模式——你若安好,便是晴天
- POJ A Knight's Journey
- String...str是什么?