rocket
走在agile的小路上
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-55 評論-208 文章-0 trackbacks-0
根據name調用getName方法
問題是這樣的,我看到原來有一個方法是根據name的名稱調用getName()這個方法。
然后方法的實現是使用字符串的判斷來實現的
代碼如下:
public
Object getOrderby()
{
if
(ORDER_TITLE.equals(
this
.ordered))
{
return
getTitle();
}
else
if
(ORDER_RENDERDATE.equals(
this
.ordered))
{
return
getRenderDate();
}
else
if
(ORDER_CREATEDATE.equals(
this
.ordered))
{
return
getCreateDate();
}
else
if
(ORDER_LASTMODIFIED.equals(
this
.ordered))
{
return
getLastModified();
}
else
{
return
getTitle();
}
}
這樣的話如果以后新增get方法就意味著要增加這個getOrderby()方法的判斷。
所以我決定用類反射來改造這個方法,首先定義一個doGetMethod的方法
private
Object doGetMethod(String methodName)
throws
Exception
{
Object result
=
null
;
Object[] eo
=
new
Object[]
{}
;
String getMethodName
=
"
get
"
+
methodName.toLowerCase();
Method[] methods
=
getClass().getMethods();
for
(
int
i
=
0
; i
<
methods.length; i
++
)
{
Method method
=
methods[i];
if
(getMethodName.equals(method.getName().toLowerCase()))
{
result
=
method.invoke(
this
, eo);
}
}
return
result;
}
這里根據methodName組合成getMethodName,然后到Method[]中找這個Method,然后用invoke調用這個方法
這里要說明invoke這個方法的參數是第一個參數是指定包含方法的類,第二個參數是指定方法需要的參數。
最后修改原來的getOrderBy
public
Object getOrderby()
{
Object obj
=
getTitle();
try
{
obj
=
doGetMethod(getOrdered());
}
catch
(Exception e)
{
return
obj;
}
return
obj;
}
posted on 2007-04-12 15:36
rocket
閱讀(1918)
評論(3)
編輯
收藏
評論:
#
re: 根據name調用getName方法 2007-04-12 17:36 |
G_G
沙發
回復
更多評論
#
re: 根據name調用getName方法 2007-04-12 17:38 |
popoer
good!
回復
更多評論
#
re: 根據name調用getName方法
2007-04-12 19:57 |
劉甘泉
把簡單的東西弄復雜了,如果方法固定的話 用 if else 效果更好,如果需要隨時更改的話,用interface 不同實現 +反射都好用的多
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Dict.CN 在線詞典, 英語學習, 在線翻譯
QQ:19794405
agilelife分享群:59765983
QQ上少了,請大家加入msn group:
agilelife@groups.msn.com
敏捷項目實踐經驗分享
TDD,重構,迭代,結對
<
2007年4月
>
日
一
二
三
四
五
六
25
26
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
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(7)
給我留言
查看公開留言
查看私人留言
我參與的團隊
深圳Java俱樂部(0/0)
隨筆分類
(15)
UI相關
好文翻譯(1)
常用框架(1)
敏捷方法(4)
數據庫相關
構架設計(2)
經驗積累(3)
項目管理(4)
隨筆檔案
(55)
2008年12月 (1)
2008年7月 (2)
2008年5月 (8)
2008年3月 (1)
2008年2月 (4)
2007年10月 (1)
2007年9月 (4)
2007年7月 (3)
2007年5月 (2)
2007年4月 (6)
2007年3月 (5)
2007年2月 (2)
2007年1月 (3)
2006年11月 (3)
2006年10月 (1)
2006年8月 (1)
2006年7月 (1)
2006年5月 (2)
2006年4月 (2)
2006年3月 (3)
相冊
rocket
搜索
積分與排名
積分 - 133228
排名 - 464
最新評論
1.?re: 找了一天的jsp格式化工具,最后還是用回workshop
nb@2
--3
2.?re: 一個以前沒有注意的問題:java構造函數的執行順序
不錯,很有幫助
--王鵬飛
3.?re: 一個新java web項目入手過程總結
標記一下。
--何楊
4.?re: 單元測試究竟是測試什么?[未登錄]
單元測試是在測邏輯,包括條件判定,循環等。博主的這段代碼不包括任何邏輯,當然不需要用單元測試去覆蓋。
--王輝
5.?re: 找了一天的jsp格式化工具,最后還是用回workshop
傻逼
--2
閱讀排行榜
1.?一個新java web項目入手過程總結(8499)
2.?一個以前沒有注意的問題:java構造函數的執行順序(8197)
3.?找了一天的jsp格式化工具,最后還是用回workshop(7382)
4.?dwr reverse-ajax 實例解析(6603)
5.?Spring+hibernate 單元測試框架總結(6239)
評論排行榜
1.?不仁義,不仗義(24)
2.?招聘java程序員,系統架構師(20)
3.?dwr reverse-ajax 實例解析(11)
4.?找了一天的jsp格式化工具,最后還是用回workshop(10)
5.?單元測試究竟是測試什么?(10)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 rocket
主站蜘蛛池模板:
成人片黄网站色大片免费观看cn
|
永久免费A∨片在线观看
|
亚洲国产精品成人久久
|
国产免费牲交视频
|
国产乱子伦精品免费视频
|
国产∨亚洲V天堂无码久久久
|
免费A级毛片无码A∨中文字幕下载
|
亚洲乱码一区二区三区在线观看
|
亚洲国产天堂久久综合网站
|
亚洲成av人片一区二区三区
|
全免费a级毛片免费**视频
|
免费人成网站永久
|
亚洲国产成人片在线观看
|
亚洲中文字幕成人在线
|
24小时日本电影免费看
|
a毛片免费播放全部完整
|
成人在线免费视频
|
猫咪免费观看人成网站在线
|
亚洲国产精品久久久久秋霞小
|
亚洲国产成人精品电影
|
亚洲精品福利网站
|
18亚洲男同志videos网站
|
亚洲av无码乱码国产精品
|
亚洲VA中文字幕无码毛片
|
夜夜春亚洲嫩草影院
|
亚洲熟妇av一区二区三区
|
久久精品国产精品亚洲艾草网美妙
|
7m凹凸精品分类大全免费
|
免费播放美女一级毛片
|
国产精品亚洲专区在线播放
|
亚洲1区2区3区精华液
|
色婷婷亚洲一区二区三区
|
国产成人人综合亚洲欧美丁香花
|
两个人看的www高清免费观看
|
亚洲校园春色另类激情
|
国产亚洲美日韩AV中文字幕无码成人
|
亚洲国产小视频精品久久久三级
|
亚洲精品中文字幕
|
亚洲色图在线播放
|
少妇亚洲免费精品
|
黄色成人网站免费无码av
|