- 5
- 0
- 约3.24千字
- 约 10页
- 2015-10-05 发布于河南
- 举报
《java教程10_反射》.pdf
Java反射(Reflection)
反射(Reflection) 2-1
反射是Java开发语言的特征之一,它允许运行中的Java程
序对自身进行检查(即内省),并能直接操作程序的内部属
性和方法。也就是说,利用反射可以在程序运行时对其进
行动态的控制。
在程序运行状态中,对于任意一个类都能够知道这个类的
所有属性和方法,对于任意一个对象都能够调用它的任意
一个方法,这种动态获取的信息以及动态调用对象的方法
的功能称为Java语言的反射机制。
在JDK 中,主要由以下类来实现Java 的反射机制,这些类
大部分位于java.lang.reflect包中。
Class类:代表一个类(java.lang.Class)
Field类:代表类的成员变量
Method类:代表类的方法
Constructor类:代表类的构造方法
Array类:提供了动态创建数组的方法
反射(Reflection) 2-2
反射机制的用途:
在运行时确定任意一个对象所属的类。
在运行时获取任意一个类的modifiers、成员变
量、方法。
在运行时创建任意一个类的实例,这个实例在
运行时刻才有名称。
在运行时取得和设定成员变量的值。
在运行时动态调用对象的方法。
动态创建数组,数组大小和类型在运行时刻才
能确定。
Class类(java.lang.Class)
Class类的对象代表一个类。
在Java程序运行过程中,当一个类被加载并被创
建对象时,和该类对应的一个类型为Class的对象
就会在内存中自动创建。Class类本身不提供构造
方法,因此,不能使用new运算符和构造方法显
式地创建一个Class对象。
任何类的对象调用getClass()方法都可以获取和该
对象相关的一个Class对象,这个Class对象可以获
取创建该对象的类的相关信息,比如:类的名称、
类中的方法名称、成员变量名称。
Class类的方法 2-1
String getName():返回该类的名称
Constructor[ ] getDeclaredConstructors():
返回类中的全部构造方法
Field [ ] getDeclaredFields()
返回类中的全部成员变量
Method [ ] getDeclaredMethods()
返回类中的全部方法
getPackage()
返回类所属的包信息
Constructor、Field 、Method是java.lang.reflect包中的类,
它们的对象分别代表构造方法、成员变量、方法,包含着
对应的构造方法、成员变量、方法的信息。
java.lang.Package类的对象代表一个包,包含相关包的信
息。
Class类的方法 2-2
public int getModifiers()
获取各自表示的类、成员变量、方法、构造方
法对应修饰符
public native boolean isInstance(Object
obj)
类似于instanceof
精确判断类型
instanceof进行的是类型兼容的判断,子类
对象可以看做是父类类型。
使用反射进行的类型判断是精确类型的,
如果精确类型不匹配,则不能通过。
使用Class类实例化一个对象
加载指定的类,获取Class对象
Class clazz = Class.forName(“包名+类名”);
例如:Class clazz = Class.forName(“com.xawx.Test”);
创建加载类的对象
例如:Test test = (Test)clazz.newInstance();
注意:Class对象调用newInstance()方法实例化一个指定类的对象
时,指定类必须有无参数的构造方法。
获取
您可能关注的文档
最近下载
- 2024-2025学年上海市普陀区六年级下学期数学期末试题含详解.pdf VIP
- 制造业企业员工高离职率分析.pdf VIP
- GB50461-2024:石油化工静设备安装工程施工质量验收规范.pptx VIP
- 三江A116火灾报警控制器简易操作规程.docx
- (新版)社会体育指导员理论知识考试题库(含答案).docx VIP
- DB31T 1104-2018 城市轨道交通导向标识系统设计规范.docx VIP
- 2023年浙江省军队转业干部录用考试试题.docx VIP
- 口渴了-朋友帮你.ppt VIP
- Xikong西莱克低温机控制板SHXK814用户手册.pdf
- 爱迪生牛顿大发明攻略.doc VIP
原创力文档

文档评论(0)