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

時間:2024-08-11 16:09:41 SUN認證 我要投稿
  • 相關推薦

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

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

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

  1.兩個相似類

  Man類

  Women類:

  代理類:

  package Reflect;

  import java.lang.reflect.Method;

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

  this.target = target;

  }

  public String getMethodName() {

  return methodName;

  }

  public void setMethodName(String methodName) {

  this.methodName = methodName;

  }

  public Object[] getParams() {

  return params;

  }

  public void setParams(Object[] params) {

  this.params = params;

  }

  public Person(){

  }

  /**

  * _重新設置目標方法

  */

  private void reSetMethod(String methodName){

  if(params!=null){ //目標方法有參數

  int paramsLength = params.length;

  Class[] paramsTypes = new Class[paramsLength];

  for(int i=0;i

  paramsTypes[i] = params[i].getClass();

  }

  try {

  method = target.getClass().getMethod(methodName,paramsTypes);

  } catch (SecurityException e) {

  e.printStackTrace();

  } catch (NoSuchMethodException e) {

  e.printStackTrace();

  }

  }

  else //目標方法參數為null

  {

  try {

  method = target.getClass().getMethod(methodName,null);

  } catch (SecurityException e) {

  e.printStackTrace();

  } catch (NoSuchMethodException e) {

  e.printStackTrace();

  }

  }

  }

  /**

  * _重新設置目標對象和方法

  */

  private void reSetTarget(Object target,String methodName){

  this.target = target;

  this.reSetMethod(methodName);

  }

  /**

  * _動態調用已綁定方法

  */

  public void doMethod() throws Exception{

  reSetTarget(target,methodName);

  this.method.invoke(target, params);

  }

  }

【SUN認證考試知識點:Java反射機制的應用】相關文章:

sun java認證考試介紹10-23

Sun java認證考試答案11-06

Sun Java認證考試科目08-30

sun java認證考試報考指南10-18

SUN JAVA認證介紹08-09

SUN認證考試知識點:java servlet生命周期09-25

Sun認證Java開發員考試介紹10-09

sun認證考試:Java.io的使用08-23

Sun Java認證考試教材教輔09-13

Sun java認證考試真題答案09-25

亚洲制服丝袜二区欧美精品,亚洲精品无码视频乱码,日韩av无码一区二区,国产人妖视频一区二区
亚洲ⅴa久久久噜噜噜久久狠狠 | 中文字幕国产第一页首页 | 亚洲日本熟女视频 | 亚洲欧美一区二区三区在线 | 亚洲熟女乱综合一区二区三区 | 综合久久久久久综合久 |