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
阅读(191)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © whl
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
2009年3月 (1)
文章档案
2009年6月 (6)
2009年5月 (13)
2009年3月 (3)
搜索
最新评论
1. re: Class.forName、Class.class(属性)、getClass()的区别
d
--4
2. re: 总结Struts1.2 Validator验证框架(原创) 代码经测试[未登录]
评论内容较长,点击标题查看
--Lee