【Java基础】反射篇

跟風遠走 提交于 2019-12-25 10:35:09

前言:java如何在运行时识别对象和类的信息.有两种实现方式

  1. 传统RTTI

  2. 反射

RTTI和反射有什么区别?

对RTTI来说,编译器在编译时打开和检查.class文件而反射机制来说,.class文件在编译时是不可获取得,所以在运行时打开和检查.class文件()

反射是框架设计的灵魂

原理:反射首先是能够获取到Java中的反射类的字节码,然后将字节码中的方法,变量,构造函数等映射成 相应的 Method、Filed、Constructor 等类

应用:取出类的modifiers,数据成员,方法,构造器,和超类
找出某个接口里定义的常量和方法说明.
取得和设定对象数据成员的值,如果数据成员名是运行时刻确定的也能做到.
在运行时刻调用动态对象的方法.

一、反射的概述
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.

二 反射的作用
总结:通过Class类与java.lang.reflect类库一起对反射进行支持
反射的使用网上教程很多,研究Class类,Filed,Method,Constructor,Modifier类即可掌握反射

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!