码迷,mamicode.com
首页 > 编程语言 > 详细

java反射

时间:2017-01-05 12:10:04      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:打印   java   property   []   属性   rgs   包名   name   情况   

用反射模拟类的get和set方法

public static void main(String[] args) throws Exception {
Class clazz = Class.forName("fieldsTest.Students");//这里的类名是全名。。有包的话要加上包名
Object obj = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
//写数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method wM = pd.getWriteMethod();//获得写方法
wM.invoke(obj, "xiaoming");//因为知道是String类型的属性,所以传个String过去就是了。。实际情况中需要判断下他的参数类型
}
//读数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method rM = pd.getReadMethod();//获得读方法
String num = (String) rM.invoke(obj);//因为知道是String类型的属性,所以转换成String就是了。。也可以不转换直接打印
System.out.println(num);
}
}

java反射

标签:打印   java   property   []   属性   rgs   包名   name   情况   

原文地址:http://www.cnblogs.com/tengfeihhh/p/6251701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!