samtiger
QQ:418148757
Name:yangchuan
BlogJava
首页
新随笔
联系
聚合
管理
数据加载中……
java反射基础
每一个java类在内存中都对应着有一个Class类对象,这个对象记录着该java类的相关信息。我们可以通过这个Class对象去:
a: 在运行时判断任意一个对象所属的类;
b:在运行时构造任意一个类的对象。
c:在运行时获取任意一个类所具有的成员变量和方法。
d: 在运行时调用任意一个对象的可对外访问的方法;
e:在运行时给任意一个对象的可对外访问的成员变量赋值;
心情不是很好,现发点代码。明天来修改吧,唉,居然为了女人心情不好。郁闷阿
/**/
/*
* @(#)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
阅读(336)
评论(1)
编辑
收藏
评论
#
re: java反射基础
2007-11-15 14:34
程佳
多发些东西来哟
我们好学习下撒
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
<
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
统计
随笔 - 30
文章 - 4
评论 - 29
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔分类
23设计模式的理解(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基础(4)
(rss)
文章档案
2010年4月 (4)
相册
再回北京
我的代码
JSONTool.jar
(rss)
我写的一个java转换为json字串的小工具。可以将pojo。集合和map转换为相应的json字串,以供前台js调用. 使用方法JSONTool.toJSON(list)。或JSONTool.toJSON(pojo)。或JSONTool.toJSON(map)。都会返回一个json格式的字串,
搜索
最新评论
1. re: flex之弹出窗口数据传递[未登录]
123123
--123123
2. re: flex之弹出窗口数据传递
@aaaa
撒旦法都是
--的
3. re: 设计模式之单例模式[未登录]
wole asd a
--oscar
4. re: flex之弹出窗口数据传递
fdas
--fdsa
5. re: flex之弹出窗口数据传递
电饭锅电饭锅
--二
阅读排行榜
1. 设计模式之状态模式(5890)
2. 关于showModalDialog参数说明(4159)
3. 关于spring2与struts1整合 的DelegatingActionProxy 委托方式及一些问题思考(3222)
4. CruiseControl+maven2+SVN+apache+ldap(或其它)(2659)
5. struts2验证失败后返回input,select中list数据丢失问题(2654)
评论排行榜
1. spring2.04+hibernate3.2+struts2+ajax中文乱码问题(3)
2. 设计模式之单例模式(2)
3. 关于java数据类型和参数(2)
4. 关于showModalDialog参数说明(2)
5. struts2验证失败后返回input,select中list数据丢失问题(2)