• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. SUN認(rèn)證考試知識點(diǎn):Java反射機(jī)制的應(yīng)用

        時間:2024-08-11 16:09:41 SUN認(rèn)證 我要投稿
        • 相關(guān)推薦

        SUN認(rèn)證考試知識點(diǎn):Java反射機(jī)制的應(yīng)用

          目標(biāo):用一個代理類實(shí)現(xiàn)兩個相似類的調(diào)用

        SUN認(rèn)證考試知識點(diǎn):Java反射機(jī)制的應(yīng)用

          1.兩個相似類

          Man類

          Women類:

          代理類:

          package Reflect;

          import java.lang.reflect.Method;

          public class Person { //代理類

          private Object target; //目標(biāo)對象

          private String methodName; //目標(biāo)方法

          private Object[] params; //參數(shù)數(shù)組

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

          }

          /**

          * _重新設(shè)置目標(biāo)方法

          */

          private void reSetMethod(String methodName){

          if(params!=null){ //目標(biāo)方法有參數(shù)

          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 //目標(biāo)方法參數(shù)為null

          {

          try {

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

          } catch (SecurityException e) {

          e.printStackTrace();

          } catch (NoSuchMethodException e) {

          e.printStackTrace();

          }

          }

          }

          /**

          * _重新設(shè)置目標(biāo)對象和方法

          */

          private void reSetTarget(Object target,String methodName){

          this.target = target;

          this.reSetMethod(methodName);

          }

          /**

          * _動態(tài)調(diào)用已綁定方法

          */

          public void doMethod() throws Exception{

          reSetTarget(target,methodName);

          this.method.invoke(target, params);

          }

          }

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【SUN認(rèn)證考試知識點(diǎn):Java反射機(jī)制的應(yīng)用】相關(guān)文章:

        sun java認(rèn)證考試介紹10-23

        Sun java認(rèn)證考試答案11-06

        Sun Java認(rèn)證考試科目08-30

        sun java認(rèn)證考試報考指南10-18

        SUN JAVA認(rèn)證介紹08-09

        SUN認(rèn)證考試知識點(diǎn):java servlet生命周期09-25

        Sun認(rèn)證Java開發(fā)員考試介紹10-09

        sun認(rèn)證考試:Java.io的使用08-23

        Sun Java認(rèn)證考試教材教輔09-13

        Sun java認(rèn)證考試真題答案09-25

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲无线码高清在线观看 | 中文字幕长篇连载国产 | 中文字幕在线不卡精品视频99 | 亚洲国产品有宅男 | 亚洲国产日韩欧美高清片 | 日韩欧美在线网址 |

            SUN認(rèn)證考試知識點(diǎn):Java反射機(jī)制的應(yīng)用

              目標(biāo):用一個代理類實(shí)現(xiàn)兩個相似類的調(diào)用

            SUN認(rèn)證考試知識點(diǎn):Java反射機(jī)制的應(yīng)用

              1.兩個相似類

              Man類

              Women類:

              代理類:

              package Reflect;

              import java.lang.reflect.Method;

              public class Person { //代理類

              private Object target; //目標(biāo)對象

              private String methodName; //目標(biāo)方法

              private Object[] params; //參數(shù)數(shù)組

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

              }

              /**

              * _重新設(shè)置目標(biāo)方法

              */

              private void reSetMethod(String methodName){

              if(params!=null){ //目標(biāo)方法有參數(shù)

              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 //目標(biāo)方法參數(shù)為null

              {

              try {

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

              } catch (SecurityException e) {

              e.printStackTrace();

              } catch (NoSuchMethodException e) {

              e.printStackTrace();

              }

              }

              }

              /**

              * _重新設(shè)置目標(biāo)對象和方法

              */

              private void reSetTarget(Object target,String methodName){

              this.target = target;

              this.reSetMethod(methodName);

              }

              /**

              * _動態(tài)調(diào)用已綁定方法

              */

              public void doMethod() throws Exception{

              reSetTarget(target,methodName);

              this.method.invoke(target, params);

              }

              }