javan

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

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

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

          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();
                  
          //待執行的方法名稱注意沒有()
                  String methodName = "getInvoiceSortCode";

                  
          //先獲取相應的method對象
                  
          //getMethod第一個參數是方法名,第二個參數是該方法的參數類型,
                  
          //因為存在同方法名不同參數這種情況,所以只有同時指定方法名和參數類型才能唯一確定一個方法
                  Method method = m.vo.getClass().getMethod(methodName,new Class[0]);
                  
          //接下來就該執行該方法了,解釋一下參數
                  
          //第一個參數是具體調用該方法的對象
                  
          //第二個參數是執行該方法的具體參數
                  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)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 建昌县| 汝州市| 怀集县| 荆门市| 双城市| 平舆县| 类乌齐县| 饶平县| 白银市| 彭山县| 婺源县| 宣汉县| 西平县| 六盘水市| 阜康市| 定边县| 安宁市| 即墨市| 敖汉旗| 修武县| 新巴尔虎左旗| 界首市| 大名县| 肃南| 镇巴县| 汉中市| 武宁县| 江山市| 黄梅县| 肇州县| 维西| 新泰市| 介休市| 安乡县| 肃南| 通榆县| 漳平市| 蒙山县| 德保县| 大埔县| 申扎县|