JAVA 反射机制
JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能
够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制。
Java 反射机制主要提供了以下功能:<在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行
时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
1.得到某个对象的属性
1publicObjectgetProperty(Objectowner,StringeldName)throwsExcep&on{
2ClassownerClass=owner.getClass();
3
4Fieldeld=ownerClass.getField(eldName);
5
6Objectproperty=eld.get(owner);
7
8returnproperty;
9}
ClassownerClass=owner.getClass():得到该对象的 Class。
Fieldeld=ownerClass.getField(eldName):通过 Class 得到类声明的属性。
Objectproperty=eld.get(owner) : 通 过 对 象 得 到 该 属 性 的 实 例 , 如 果 这 个 属 性 是 非 公 有 的 , 这 里 会 报
IllegalAccessExcep&on。
2.得到某个类的静态属性
1publicObjectgetSta&cProperty(StringclassName,StringeldName)
2throwsExcep&on{
3ClassownerClass=Class.forName(className);
4
5Fieldeld=ownerClass.getField(eldName);
6
7Objectproperty=eld.get(ownerClass);
8
9returnproperty;
10}
ClassownerClass=Class.forName(className):首先得到这个类的 Class。
Fieldeld=ownerClass.getField(eldName):和上面一样,通过 Class 得到类声明的属性。
Objectproperty=eld.get(ownerClass):这里和上面有些不同,因为该属性是静态的,所以直接从类的 Class 里取。
3.执行某对象的方法