Java反射技术总结.doc

Java反射技术总结.doc

ID:56200325

大小:68.00 KB

页数:5页

时间:2020-03-20

Java反射技术总结.doc_第1页
Java反射技术总结.doc_第2页
Java反射技术总结.doc_第3页
Java反射技术总结.doc_第4页
Java反射技术总结.doc_第5页
资源描述:

《Java反射技术总结.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java反射技术总结Java反射技术知识点总结1>反射:反射是指程序可以访问、检测和修改它本身状态或行为的一种能力。2、Java语言的反射机制主要提供以下功能:在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类所具冇的成员变量和方法在运行时调用任意一个类所具有的成员变量和方法生成动态代理3、在java.lang.reflect包当中提供了实现反射机制的类:Class类:代表一个类。Field类:代表类的成员变量,也称为类的属性。Method类:代表类的方法。Constructor类:代表类的构造方法。Array类:该类提供动态地生成和访问

2、java数组的方法。4、Class实例:Class类和其它的类一样继承自Object类,Class对象包含了与类相关的信息。事实上,Class对象就是用來创建类的所冇的“普通”对象的。类是程序的一部分,每个类都有一个Class对象。换言之,每当编写并且编译了一个新类吋,就会产生一个Class对象(恰当地说,该对象被保存在一个同名的.class文件中)。在运行时,当我们想生成这个类的对象时,运行这个程序的java虚拟机(JVM)首先检查这个类的Class对象是否己经加载。如果尚未加载,JVM就会根据类名查找.class文件,并将其载入。一口某个类的Class对象被载入内存

3、,它就被用来创建这个类的所有对象。这些对象都会对应于同一个Class对象。要想使用反射,首先需要获得待处理类或对象所对应的Class实例。获取Class实例的四种方式:第一种:调用类本身的.class属性。Classc=String.class;第二种:调用对象的getClass()方法获取该对象的Class实例。Stringstr=nabcn;Classc=str.getClass();第三种:使用Class类的静态方法forName(),用类的全名(包名.类名)来获取一个Class实例。Class.forName("java」ang.String〃);第四种:对于基

4、本数据类型的封装类,可以釆用.TYPE来获取相对应的基本数据类型的Class实例。ClassintClass=Integer.TYPE5、Class类的其它方法:Objectnewlnstance()使用Class对象生成该类的新实例。它调用了缺省(无参数)的类构造方法创建一个新的对象。所以使用newlnstance()方法创建的类必须冇一个无参数的构造方法。booleanislnstance()该方法提供了一种动态地调用instanceof运算符的途径。Class[]getlnterfaces()该方法返回Class对象的数组,这些对象代表的是某个Class对象所包含

5、的接口ClassgetSuperclass()该方法获取该Class对象的直接基类。这个方法自然也是返回一个Class引用,所以可以进一步查询其基类。这意味着在运行时,可以找到某个对象的完整类层次结构。6、获得类的构造方法可以调用Class类对象的以下方法:ConstructorgetConstructor(Class[]params):获得类的指定参数类型的公共构造方法。Constructor!]getConstructors():获得类的所有公共构造方法。ConstructorgetDeclaredConstructor(Class[]params):获得类的指定参

6、数类型的构造方法(与访问级别无关)。Constructor[]getDeclaredConstructors():获得类的所有构造方法(与访问级别无关)7、获得类的成员变量可以调用Class类对象的以下方法:FieldgetField(Stringname):获得指定的公共字段(属性)Field[]getFields():获得类的所有公共字段(属性)FieldgetDeclaredField(Stringname):获得类声明的指定的字段(与访问级别无关)Field[]getDeclaredFields():获得类声明的所有字段8、获得类的成员方法可以调用Class类对

7、象的以下方法:MethodgetMethod(Stringname,Class[]params):获取包含指定的参数类型及名称的公共方法Method[]getMethods():获得类的所有公共方法MethodgetDeclaredMethod(Stringname,Class[]params):获取包含指定的参数类型及名称的类声明的方法Method]]getDeclaredl/lethods():获得类声明的所有方法9、使用反射來动态的调用类的方法,需要使用java.Iang.reflect.Method中的:Objectinvoke

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。