JAVA反射机制ppt.ppt_第1页
JAVA反射机制ppt.ppt_第2页
JAVA反射机制ppt.ppt_第3页
JAVA反射机制ppt.ppt_第4页
JAVA反射机制ppt.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java反射机制 目标 理解Java反射机制应用Java反射API 什么是反射 在运行时加载 探知 使用编译期间完全未知的classes允许运行中的Java程序对自身进行 自审 Class类 反射的起源当类加载以后 JVM便自动产生一个Class对象使用该对象就可以获取一个类中的方法 成员以及构造方法的声明和定义等信息 反射API 反射API用于反应在当前Java虚拟机中的类 接口或者对象信息功能 获取一个对象的类信息 获取一个类的访问修饰符 成员 方法 构造方法以及超类的信息 检获属于一个接口的常量和方法声明 创建一个直到程序运行期间才知道名字的类的实例 获取并设置一个对象的成员 甚至这个成员的名字是在程序运行期间才知道 检测一个在运行期间才知道名字的对象的方法 使用Reflection java lang relfect包遵循三个步骤第一步是获得你想操作的类的java lang Class对象第二步是调用诸如getDeclaredMethods的方法第三步使用reflectionAPI来操作这些信息 获得一个Class对象 如果一个类的实例已经得到 你可以使用 Classc 对象名 getClass 例 TextFieldt newTextField Classc t getClass Classs c getSuperclass 如果你在编译期知道类的名字 你可以使用如下的方法Classc java awt Button class 或者Classc Integer TYPE 如果类名在编译期不知道 但是在运行期可以获得 你可以使用下面的方法Classc Class forName strg 简单示例 importjava lang reflect publicclassSearchMethods publicstaticvoidmain Stringargs try Classc Class forName args 0 Methodm c getDeclaredMethods for inti 0 i m length i System out println m i toString catch Exceptione System err println e 应用反射API 1 获得类的构造方法 ConstructorgetConstructor Class params 获得使用特殊的参数类型的公共构造函数 Constructor getConstructors 获得类的所有公共构造函数 ConstructorgetDeclaredConstructor Class params 获得使用特定参数类型的构造函数 与接入级别无关 Constructor getDeclaredConstructors 获得类的所有构造函数 与接入级别无关 应用反射API 2 获取类定义变量 FieldgetField Stringname 获得命名的公共字段 Field getFields 获得类的所有公共字段 FieldgetDeclaredField Stringname 获得类声明的命名的字段 Field getDeclaredFields 获得类声明的所有字段3 获取类定义方法 MethodgetMethod Stringname Class params 使用特定的参数类型 获得命名的公共方法 Method getMethods 获得类的所有公共方法 MethodgetDeclaredMethod Stringname Class params 使用特写的参数类型 获得类声明的命名的方法 Method getDeclaredMethods 获得类声明的所有方法 应用反射API 创建对象获取构造器信息找出类的方法获取类的字段根据方法的名称来执行方法 实例 利用反射动态实例化对象 1定义一个类的配置文件如下 实例 利用反射动态实例化对象 2新建一个Acc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论