• <nav id="cwumo"><code id="cwumo"></code></nav>
  • <menu id="cwumo"><strong id="cwumo"></strong></menu>

    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

    日韩激情