SUN认证考试知识点:Java反射机制的应用

来源:文书网 3.34W

目标:用一个代理类实现两个相似类的调用

SUN认证考试知识点:Java反射机制的应用

1.两个相似类

Man类

Women类:

代理类:

package Reflect;

import od;

public class Person { //代理类

private Object target; //目标对象

private String methodName; //目标方法

private Object[] params; //参数数组

private Method method;

public Object getTarget() {

return target;

}

public void setTarget(Object target) {

et = target;

}

public String getMethodName() {

return methodName;

}

public void setMethodName(String methodName) {

odName = methodName;

}

public Object[] getParams() {

return params;

}

public void setParams(Object[] params) {

ms = params;

}

public Person(){

}

/**

* _重新设置目标方法

*/

private void reSetMethod(String methodName){

if(params!=null){ //目标方法有参数

int paramsLength = th;

Class[] paramsTypes = new Class[paramsLength];

for(int i=0;i

paramsTypes[i] = params[i]lass();

}

try {

method = lass()ethod(methodName,paramsTypes);

} catch (SecurityException e) {

tStackTrace();

} catch (NoSuchMethodException e) {

tStackTrace();

}

}

else //目标方法参数为null

{

try {

method = lass()ethod(methodName,null);

} catch (SecurityException e) {

tStackTrace();

} catch (NoSuchMethodException e) {

tStackTrace();

}

}

}

/**

* _重新设置目标对象和方法

*/

private void reSetTarget(Object target,String methodName){

et = target;

tMethod(methodName);

}

/**

* _动态调用已绑定方法

*/

public void doMethod() throws Exception{

reSetTarget(target,methodName);

ke(target, params);

}

}

热门标签