samtiger
QQ:418148757
Name:yangchuan
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
數(shù)據(jù)加載中……
java反射基礎(chǔ)
每一個(gè)java類在內(nèi)存中都對應(yīng)著有一個(gè)Class類對象,這個(gè)對象記錄著該java類的相關(guān)信息。我們可以通過這個(gè)Class對象去:
a: 在運(yùn)行時(shí)判斷任意一個(gè)對象所屬的類;
b:在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對象。
c:在運(yùn)行時(shí)獲取任意一個(gè)類所具有的成員變量和方法。
d: 在運(yùn)行時(shí)調(diào)用任意一個(gè)對象的可對外訪問的方法;
e:在運(yùn)行時(shí)給任意一個(gè)對象的可對外訪問的成員變量賦值;
心情不是很好,現(xiàn)發(fā)點(diǎn)代碼。明天來修改吧,唉,居然為了女人心情不好。郁悶阿
/**/
/*
* @(#)UserType.java
* createTime:2007-10-26 下午03:11:49
*/
package
com.zdsoft.javaiobase.ref;
/** */
/**
*
@author
sam E-mail:ashan8888@163.com
*
@version
1.0
*/
public
class
UserType
{
private
String name;
private
String sex;
private
int
old;
public
String testName;
public
String getTestName()
{
return
testName;
}
public
void
setTestName(String testName)
{
this
.testName
=
testName;
}
public
String getName()
{
return
name;
}
public
void
setName(String name)
{
this
.name
=
name;
}
public
int
getOld()
{
return
old;
}
public
void
setOld(
int
old)
{
old
=
old;
}
public
String getSex()
{
return
sex;
}
public
void
setSex(String sex)
{
this
.sex
=
sex;
}
}
寫一些反射測試代碼:
/**/
/*
* @(#)RefTest.java
* createTime:2007-10-26 下午03:13:24
*/
package
com.zdsoft.javaiobase.ref;
import
java.lang.reflect.Field;
import
java.lang.reflect.Method;
import
junit.framework.TestCase;
/** */
/**
*
@author
sam E-mail:ashan8888@163.com
*
@version
1.0
*/
public
class
RefTest
extends
TestCase
{
private
Class cobj;
@Override
protected
void
setUp()
throws
Exception
{
cobj
=
Class.forName(
"
com.zdsoft.javaiobase.ref.UserType
"
);
}
public
void
testCreateObj()
throws
Exception
{
System.out.println(cobj.newInstance());
}
public
void
testGetMethods()
throws
Exception
{
Method[] methods
=
cobj.getDeclaredMethods();
System.out.println(
"
-------Methods------
"
);
for
(Method m : methods)
{
System.out.println(m.toString());
}
}
public
void
testGetMethod()
throws
Exception
{
Method m
=
cobj.getMethod(
"
setName
"
, String.
class
);
System.out.println(
"
-------a Method------
"
);
System.out.println(m.toString());
}
public
void
testGetFields()
throws
Exception
{
System.out.println(
"
------fileds-------
"
);
Field[] fields
=
cobj.getDeclaredFields();
for
(Field f : fields)
{
System.out.println(f.getName());
}
}
public
void
testInvoke()
throws
Exception
{
UserType userType
=
(UserType) cobj.newInstance();
Method m
=
cobj.getMethod(
"
getName
"
,
null
);
Method ms
=
cobj.getMethod(
"
setName
"
, String.
class
);
ms.invoke(userType,
"
sam
"
);
System.out.println(
"
------invoke getName-------
"
);
System.out.println(m.invoke(userType,
null
));
}
public
void
testFiled()
throws
Exception
{
Field f
=
cobj.getField(
"
testName
"
);
UserType userType
=
(UserType) cobj.newInstance();
f.set(userType,
"
sam
"
);
Method m
=
cobj.getMethod(
"
getTestName
"
,
null
);
System.out.println(m.invoke(userType,
null
));
}
}
posted on 2007-10-26 22:40
sam.chuan.yang
閱讀(338)
評論(1)
編輯
收藏
評論
#
re: java反射基礎(chǔ)
2007-11-15 14:34
程佳
多發(fā)些東西來喲
我們好學(xué)習(xí)下撒
回復(fù)
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Powered by:
BlogJava
Copyright © sam.chuan.yang
<
2007年10月
>
日
一
二
三
四
五
六
30
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
31
1
2
3
4
5
6
7
8
9
10
統(tǒng)計(jì)
隨筆 - 30
文章 - 4
評論 - 29
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆分類
23設(shè)計(jì)模式的理解(3)
(rss)
android(1)
(rss)
javascript 筆記(2)
(rss)
工具的使用(5)
(rss)
隨筆檔案
2012年7月 (1)
2012年5月 (1)
2012年4月 (1)
2011年12月 (1)
2010年10月 (1)
2010年6月 (1)
2010年5月 (1)
2010年4月 (1)
2009年3月 (1)
2008年11月 (4)
2008年9月 (1)
2008年4月 (2)
2008年3月 (1)
2008年1月 (2)
2007年12月 (1)
2007年10月 (4)
2007年9月 (6)
文章分類
flex基礎(chǔ)(4)
(rss)
文章檔案
2010年4月 (4)
相冊
再回北京
我的代碼
JSONTool.jar
(rss)
我寫的一個(gè)java轉(zhuǎn)換為json字串的小工具。可以將pojo。集合和map轉(zhuǎn)換為相應(yīng)的json字串,以供前臺js調(diào)用. 使用方法JSONTool.toJSON(list)。或JSONTool.toJSON(pojo)。或JSONTool.toJSON(map)。都會返回一個(gè)json格式的字串,
搜索
最新評論
1.?re: flex之彈出窗口數(shù)據(jù)傳遞[未登錄]
123123
--123123
2.?re: flex之彈出窗口數(shù)據(jù)傳遞
@aaaa
撒旦法都是
--的
3.?re: 設(shè)計(jì)模式之單例模式[未登錄]
wole asd a
--oscar
4.?re: flex之彈出窗口數(shù)據(jù)傳遞
fdas
--fdsa
5.?re: flex之彈出窗口數(shù)據(jù)傳遞
電飯鍋電飯鍋
--二
閱讀排行榜
1.?設(shè)計(jì)模式之狀態(tài)模式(5898)
2.?關(guān)于showModalDialog參數(shù)說明(4163)
3.?關(guān)于spring2與struts1整合 的DelegatingActionProxy 委托方式及一些問題思考(3223)
4.?struts2驗(yàn)證失敗后返回input,select中l(wèi)ist數(shù)據(jù)丟失問題(2666)
5.?CruiseControl+maven2+SVN+apache+ldap(或其它)(2663)
評論排行榜
1.?spring2.04+hibernate3.2+struts2+ajax中文亂碼問題(3)
2.?設(shè)計(jì)模式之單例模式(2)
3.?關(guān)于java數(shù)據(jù)類型和參數(shù)(2)
4.?關(guān)于showModalDialog參數(shù)說明(2)
5.?struts2驗(yàn)證失敗后返回input,select中l(wèi)ist數(shù)據(jù)丟失問題(2)
主站蜘蛛池模板:
亚洲男人的天堂www
|
91视频国产免费
|
永久免费A∨片在线观看
|
一个人看的www在线免费视频
|
羞羞网站免费观看
|
曰批免费视频播放免费
|
深夜福利在线免费观看
|
免费精品国自产拍在线播放
|
国产成人不卡亚洲精品91
|
免费人成网站永久
|
国产特黄特色的大片观看免费视频
|
成人一区二区免费视频
|
国产成人AV免费观看
|
国产精品免费一区二区三区四区
|
免费av一区二区三区
|
91久久精品国产免费一区
|
久久久久久免费视频
|
在线成人a毛片免费播放
|
国产jizzjizz免费看jizz
|
亚洲精品成人片在线观看
|
不卡一卡二卡三亚洲
|
亚洲狠狠婷婷综合久久久久
|
亚洲好看的理论片电影
|
亚洲电影唐人社一区二区
|
亚洲熟女综合色一区二区三区
|
国产偷国产偷亚洲清高APP
|
一级一级毛片免费播放
|
成人爽a毛片免费
|
久久精品国产免费观看
|
国产精品免费视频网站
|
久久青青草原亚洲av无码
|
亚洲av日韩av不卡在线观看
|
亚洲jjzzjjzz在线播放
|
日韩在线视精品在亚洲
|
CAOPORM国产精品视频免费
|
18禁美女裸体免费网站
|
黄网址在线永久免费观看
|
免费观看四虎精品成人
|
久久久久国产免费
|
女人让男人免费桶爽30分钟
|
亚洲欧洲日本在线
|