反射:
概念:
在运行时状态,
对于任意一个类,知道这个类的属性和方法
对于任意一个对象,访问它的任意一个属性和方法
动态获取类或者对象的信息以及动态调用对象方法的公共,称为java语言的反射机制
使用:
1) 通过反射获取类的属性和方法:
> 获取类或者接口的Class对象
Class.forName("完整类名");
类名.class
对象名.getClass()
> 获取成员变量 Field
cls.getField("成员变量名") - 获取某一个公有成员变量
cls.getFields() - 获取所有共有成员变量
cls.getDeclaredField("成员变量名") - 获取定义的成员变量
cls.getDeclaredFields() - 获取所有定义的成员变量
获取方法 Method
cls.getMethod("成员变量名") - 获取某一个公有成员方法
cls.getMethods() - 获取所有共有成员方法
cls.getDeclaredMethod("成员变量名") - 获取定义的成员方法
cls.getDeclaredMethods() - 获取所有定义的成员方法
调用方法
a)
1,获取对应需要调用的方法对象
2, 实例化一个对应的对象
Object obj1 = Class.newInstance();
3, 通过Method调用方法
Method.invoke(obj1,new Object[]{参数1,参数1,参数1,...})
b) 构造器
Constructor constructor =
Class.getConstructor(new Class[]{参数1类型Class对象,...});
构造器.newInstance(new Object[]{参数1,参数1,参数1,...})