转自:
一个简单的需求的实现:
在程序中调用某类的某方法,并将返回结果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()//
}