轉自:http://www.blogjava.net/vesung/archive/2008/01/24/177447.html
一個簡單的需求的實現:
在程序中調用某類的某方法,並將返回結果println() 出來。
實現方法:
MethodTest.java
import java.util.List;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
/** *//**
* 功能描述:
*
* @author <a href='mailto:[email protected]'>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
/** *//**
* 功能描述:
*
* @author <a href='mailto:[email protected]'>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()
//
}
- 3樓 you_jinjin 2011-12-10 14:40發表[回覆] [引用] [舉報]
- 頂 !!!!!!!!!!!!!
- 2樓 softzhongshi 2011-03-30 16:10發表[回覆] [引用] [舉報]
- 1樓 lingyue1012 2010-12-09 14:31發表[回覆] [引用] [舉報]