javan

          i like java
          隨筆 - 0, 文章 - 28, 評論 - 2, 引用 - 0
          數(shù)據(jù)加載中……

          【轉】getMethod()和invoke()方法應用

          一個簡單的需求的實現(xiàn):
          在程序中調用某類的某方法,并將返回結果println() 出來。
          實現(xiàn)方法:

          MethodTest.java
          import java.util.ArrayList;
          import java.util.List;
          import java.lang.reflect.Method;
          import java.lang.reflect.InvocationTargetException;

          /**
           * 功能描述:
           *
           * 
          @author <a href='mailto:vesung@gmail.com'>wangjing</a>
           * Copyright: Copyright (c) 2006-2008 by vesung.cn.
           * Date: 2008-1-23 14:13:26
           
          */

          public class MethodTest{
              TestVO vo 
          = new TestVO();

              
          /**
               * 初始化vo
               
          */

              
          protected void setUp(){
                  vo.setInvoiceSortCode(
          "InvoiceSortCode");
                  vo.setInvoiceSortName(
          "InvoiceSortName");
                  vo.setOperaddress(
          "Operaddress");
                  vo.setStockStatus(
          "StockStatus");
                  vo.setStockStatusCode(
          "StockStatusCode");
                  List list 
          = new ArrayList();
                  list.add(
          "StockStatusList");
                  vo.setStockStatusList(list);
                  vo.setTaxpayerName(
          "TaxpayerName");
                  vo.setTaxRegCode(
          "TaxRegCode");
              }


              
          public static void main(String[] args) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {
                  MethodTest m 
          = new MethodTest();
                  m.setUp();
                  
          //待執(zhí)行的方法名稱注意沒有()
                  String methodName = "getInvoiceSortCode";

                  
          //先獲取相應的method對象
                  
          //getMethod第一個參數(shù)是方法名,第二個參數(shù)是該方法的參數(shù)類型,
                  
          //因為存在同方法名不同參數(shù)這種情況,所以只有同時指定方法名和參數(shù)類型才能唯一確定一個方法
                  Method method = m.vo.getClass().getMethod(methodName,new Class[0]);
                  
          //接下來就該執(zhí)行該方法了,解釋一下參數(shù)
                  
          //第一個參數(shù)是具體調用該方法的對象
                  
          //第二個參數(shù)是執(zhí)行該方法的具體參數(shù)
                  System.out.println(methodName+"():"+method.invoke(m.vo,new Object[0]));
              }

          }

          TestVO.java
          import java.util.List;

          /**
           * 功能描述:
           *
           * 
          @author <a href='mailto:vesung@gmail.com'>wangjing</a>
           * Copyright: Copyright (c) 2006-2008 by vesung.cn.
           * Date: 2008-1-23 14:17:14
           
          */

          public class TestVO {
              
          private String taxRegCode;
              
          private String stockStatusCode;
              
          private String stockStatus;
              
          private List stockStatusList;
              
          private String taxpayerName;
              
          private String operaddress;
              
          private String invoiceSortCode;
              
          private String invoiceSortName;
              
          public String pub;

                  public String getInvoiceSortCode(){
                          return InvoiceSortCode;
                  }
          //省略getter(),setter()
          //  
          }

          posted on 2009-05-23 11:19 whl 閱讀(195) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 巴南区| 嘉定区| 海门市| 三明市| 庆城县| 高台县| 鱼台县| 衡阳市| 永嘉县| 乐都县| 怀安县| 平泉县| 镇赉县| 盐城市| 土默特右旗| 安国市| 黑山县| 徐州市| 东乌| 沙坪坝区| 大足县| 乾安县| 喀什市| 凤庆县| 上饶市| 酒泉市| 克东县| 华亭县| 菏泽市| 宁陕县| 黑龙江省| 德江县| 潞城市| 东方市| 阳泉市| 铁岭市| 句容市| 德化县| 胶南市| 寿宁县| 洪泽县|