下载此文档

java学习之二-java反射机制.doc


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
Java 学习之二-Java 反射机制问题: 在运行时,对一个 JAVA 类,能否知道属性和方法;能否调用它的任意方法? 答案是可以的, JAVA 提供一种反射机制可以实现。目录 1. 什么是 JAVA 的反射机制 2. JDK 中提供的 Reflection API 3. JAVA 反射机制提供了什么功能 4. 获取类的 Class 对象 5. 获取类的 Fields 6. 获取类的 Method 7. 获取类的 Constructor 8. 新建类的实例 Class<T> 的函数 newInstance 通过 Constructor 对象的方法 newInstance 9. 调用类的函数调用 private 函数 10. 设置/ 获取类的属性值 private 属性 11. 动态创建代理类动态代理源码分析 12. JAVA 反射 Class<T> 类型源代码分析 13. JAVA 反射原理分析 Class 文件结构 JVM 加载类对象,对反射的支持 14. JAVA 反射的应用一、什么是 JAVA 的反射机制 Java 反射是 Java 被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过 Reflection APIs 取得任何一个已知名称的 class 的内部信息, 包括其 modifiers (诸如 public, static 等)、 superclass (例如 Object )、实现之 interfaces (例如 Cloneable ), 也包括 fields 和 methods 的所有信息, 并可于运行时改变 fields 内容或唤起 methods 。 Java 反射机制容许程序在运行时加载、探知、使用编译期间完全未知的 classes 。换言之, Java 可以加载一个运行时才得知名称的 class ,获得其完整结构。二、 JDK 中提供的 Reflection API Java 反射相关的 API 在包 中, JDK 的 reflect 包如下图: Member 接口该接口可以获取有关类成员(域或者方法)后者构造函数的信息。 AccessibleObject 类该类是域(field) 对象、方法(method) 对象、构造函数(constructor) 对象的基础类. 它提供了将反射的对象标记为在使用时取消默认 Java 语言访问控制检查的能力。 Array 类该类提供动态地生成和访问 JAVA 数组的方法。 Constructor 类提供一个类的构造函数的信息以及访问类的构造函数的接口。 Field 类提供一个类的域的信息以及访问类的域的接口。 Method 类提供一个类的方法的信息以及访问类的方法的接口。 Modifier 类提供了 static 方法和常量,对类和成员访问修饰符进行解码。 Proxy 类提供动态地生成代理类和类实例的静态方法。三、 JAVA 反射机制提供了什么功能 Java 反射机制提供如下功能: 在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判段任意一个类所具有的成员变量和方法在运行时调用任一个对象的方法在运行时创建新类对象在使用 Java 的反射功能时, 基本首先都要获取类的 Class 对象, 再通过 Class 对象获取其他的对象。这里首先定义用于测试的类: show source view source print ? 01class Type{ 02public int pubIntField; 03public String pubStringField; 04private int prvIntField; 0506public Type(){ 07Log("Default Constructor"); 08}0910Type(int arg1, String arg2){ 11pubIntField =arg1; 12pubStringField =arg2; 1314Log("Constructor with parameters"); 15}1617public void setIntField(int val) { =val; 19}20public int getIntField() { 21return prvIntField; 22}2324private void Log(String msg){ ("Type:" +msg); 26}27}2829class ExtendType extends Type{ 30public int pubIntExtendField; 31publ

java学习之二-java反射机制 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ranfand
  • 文件大小0 KB
  • 时间2016-03-19