当前位置:文档之家› JAVA反射机制ppt

JAVA反射机制ppt


应用反射API
2.获取类定义变量 获取类定义变量 •Field getField(String name) -- 获得命名的公共字段 •Field[] getFields() -- 获得类的所有公共字段 •Field getDeclaredField(String name) -- 获得类声明的命名的字段 •Field[] getDeclaredFields() -- 获得类声明的所有字段 3.获取类定义方法 获取类定义方法 •Method getMethod(String name, Class[] params) -- 使用特定的 参数类型, 参数类型,获得命名的公共方法 •Method[] getMethods() -- 获得类的所有公共方法 •Method getDeclaredMethod(String name, Class[] params) -- 使 用特写的参数类型, 用特写的参数类型,获得类声明的命名的方法 •Method[] getDeclaredMethods() -- 获得类声明的所有方法
简单示例
import ng.reflect.*; public class SearchMethods { public static void main(String args[]) { try { Class c = Class.forName(args[0]); Method m[] = c.getDeclaredMethods(); for (int i = 0; i < m.length; i++) System.out.println(m[i].toString()); } catch (Exception e) { System.err.println(e); } }
实例:利用反射动态实例化 对象
4 新建一个测试方法 如下: 如下:
反射API
反射API用于反应在当前Java虚拟机中的类、 接口或者对象信息 功能 —获取一个对象的类信息. —获取一个类的访问修饰符、成员、方法、 构造方法以 及超类的信息. —检获属于一个接口的常量和方法声明. —创建一个直到程序运行期间才知道名字 的类的实例. —获取并设置一个对象的成员,甚至这个
应用反射API
1 .获得类的构造方法 获得类的构造方法 •Constructor getConstructor(Class[] params) -- 获得使用特殊的参 数类型的公共构造函数 •Constructor[] getConstructors() -- 获得类的所有公共构造函数 •Constructor getDeclaredConstructor(Class[] params) -- 获得使 用特定参数类型的构造函数(与接入级别无关 与接入级别无关) 用特定参数类型的构造函数 与接入级别无关 •Constructor[] getDeclaredConstructors() -- 获得类的所有构造函数 获得类的所有构造函数( 与接入级别无关) 与接入级别无关
使用 Reflection
ng.relfect 包 遵循三个步骤 第一步是获得你想操作的类的 jຫໍສະໝຸດ ng.Class 对象 第二步是调用诸如 getDeclaredMethods 的 方法 第三步使用 reflection API 来操作这些信息
获得一个 Class 对象
如果一个类的实例已经得到,你可以使用 【Class c = 对象名.getClass(); 】 例: TextField t = new TextField(); Class c = t.getClass(); Class s = c.getSuperclass(); 如果你在编译期知道类的名字,你可以使用如下 的方法 Class c = java.awt.Button.class; 或者 Class c = Integer.TYPE;
应用反射API
创建对象 获取构造器信息 找出类的方法 获取类的字段 根据方法的名称来执行方法
实例:利用反射动态实例化 对象
1 定义一个类的配置文件 如下: 如下:
实例:利用反射动态实例化 对象
2 新建一个 新建一个Account帐号类 如下: 帐号类 如下:
实例:利用反射动态实例化 对象
3 新建一个反射工具类实例化 新建一个反射工具类实例化Account ,并调用 并调用SET方法注入参数 如下: 并调用 方法注入参数 如下:
Java反射机制
目标
理解Java反射机制 应用Java反射API
什么是反射
在运行时加载、探知、使用编译期间完全 未知的classes 允许运行中的 Java 程序对自身进行 “自审”
Class类
反射的起源 当类加载 以后,JVM 便自动产生一个Class 对象 使用该对象就可以获取一个类中的方法、 成员以及 构造方法的声明和定义等信息
相关主题