當前位置:才華齋>IT認證>SUN認證>

SUN認證考試知識點:Java反射機制的應用

SUN認證 閱讀(3.24W)

目標:用一個代理類實現兩個相似類的呼叫

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);

}

}