文档介绍:该【Java反射机制较全面PPT课件 】是由【读书百遍】上传分享,文档一共【24】页,该文档可以免费在线阅读,需要了解更多关于【Java反射机制较全面PPT课件 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。Java反射机制
概述
本课程重要讲述Java反射机制
本课程规定大家对Java泛型知识有所理解,由于程序代码中大量使用了泛型有关知识
-12-2
第2页
成都天府软件园有限企业TOSC-ITO
目录
Java反射简介………………………4
Class Object ………………………8
动态实例化 ………………………11
Method使用 ………………………14
Field使用 ………………………16
实用案例 ………………………18
总结 ………………………22
-12-2
第3页
成都天府软件园有限企业TOSC-ITO
动态语言
“程序运行时,容许变化程序构造或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。
尽管在这样的定义与分类下Java不是动态语言,它却有着一种非常突出的动态有关机制:Reflection。
-12-2
第4页
成都天府软件园有限企业TOSC-ITO
什么是反射
反射的概念是由Smith在1982年初次提出的,重要是指程序可以访问、检测和修改它自身状态或行为的一种能力。
JAVA反射机制是在运行状态中,对于任意一种类,都可以懂得这个类的所有属性和措施;对于任意一种对象,都可以调用它的任意一种措施;这种动态获取的信息以及动态调用对象的措施的功能称为java语言的反射机制。
-12-2
第5页
成都天府软件园有限企业TOSC-ITO
Java反射的应用
Spring框架:IOC(控制反转)
Hibernate框架:关联映射等
白盒测试
-12-2
第6页
成都天府软件园有限企业TOSC-ITO
Java 反射有关的API
Class<T>:表达一种正在运行的 Java 应用程序中的类和接口,是Reflection的来源
Field 类:代表类的组员变量(也称类的属性)
Method类:代表类的措施
Constructor 类:代表类的构造措施
Array类:提供了动态创立数组,以及访问数组的元素的静态措施
-12-2
第7页
成都天府软件园有限企业TOSC-ITO
Class<T>
类是程序的一部分,每个类均有一种Class对象。换言之,每当编写并且编译了一种新类,就会产生一种Class对象
Class 没有公共构造措施。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 措施自动构造的,因此不能显式地申明一种Class对象
Class是Reflection来源。要想操纵类中的属性和措施,都必须从获取Class object开始
-12-2
第8页
成都天府软件园有限企业TOSC-ITO
第一种实例就用大家非常熟悉的ArrayList类,我们尝试来获取ArrayList申明的措施。
public static void main(String[] args) {
ArrayList aList = new ArrayList();
Class alClass = ();
("①"+alClass);
("②"+());
Method[] alMethod = ();
for(Method method : alMethod){
("③"+method);
("④"+());
}
}
第一步永远是获得被反射类的Class对象!
案例一
-12-2
第9页
成都天府软件园有限企业TOSC-ITO
获取Class Object
获取方式
说明
示例
()
每个对象都有此方法
获取指定实例对象的Class
List list = new ArrayList();
Class listClass = ();
class. getSuperclass()
获取当前Class的继承类Class
List list = new ArrayList();
Class listClass = ();
Class superClass = listClass. getSuperclass();
.class直接获取
Class listClass = ;
(类名)
用Class的静态方法,传入类的全称即可
try {
Class c = ("");
} catch (ClassNotFoundException e) {
();
}
基本数据类型的封装类获取Class的方式
Class longClass = ;
Class integerClass = ;
Class voidClass = ;
-12-2
第10页
成都天府软件园有限企业TOSC-ITO
根据详细情形和个人爱好,可以选择下面任何一种方式获得Class对象