反射对属性操作的综合案例
来源:互联网 发布:国际 社会统计 数据库 编辑:程序博客网 时间:2024/06/05 21:50
利用反射机制,把一个对象中的String属性中的值包含‘a’的改为‘v’;
定义一个VO类
package cn.yangtao.ceshi;
public class FieldDemo {
private String str1="ball";
private String str2="hall";
private String str3="helllslalllas";
// public String getStr1() {
// return str1;
// }
// public void setStr1(String str1) {
// this.str1 = str1;
// }
// public String getStr2() {
// return str2;
// }
// public void setStr2(String str2) {
// this.str2 = str2;
// }
// public String getStr3() {
// return str3;
// }
// public void setStr3(String str3) {
// this.str3 = str3;
// }
public String toString(){
return this.str1+";"+this.str2+";"+this.str3;
}
}
具体的操作类
package cn.yangtao.ceshi;
import java.lang.reflect.*;
public class ModiferField {
/**
* @param args
*/
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
FieldDemo fd=new FieldDemo();
replaceValue(fd);
System.out.println(fd);
}
private static void replaceValue(Object obj)throws Exception {
// TODO Auto-generated method stub
Class c1=obj.getClass();
Field[] fields=c1.getDeclaredFields();
for(Field field:fields){
field.setAccessible(true);
if(field.getType()==String.class){
String oldValue=(String)field.get(obj);
String newValue=oldValue.replace('a', 'v');
//System.out.println(newValue);
field.set(obj, newValue);
}
}
}
}
因为在VO类中。我把属性设置成私有的,所以在操作类要取得属性时采用getDeclaredFields().然后再把每个反问权限设置为true就可以访问了。之前没有注意到这个问题,而采用了getFields()方法,弄得很久都没运行成功,希望其他人不要再犯同样的错误了
另外,发现把VO类中的getter和setter方法注释掉。程序运行的结果仍然是一样的。说明用反射在取出类中的属性时没有调用setter和getter方法
老婆要求加的链接>>
- 反射对属性操作的综合案例
- java 反射(四) 反射对属性、方法的操作
- 成员变量反射的综合案例
- java中的反射机制对属性和方法的操作
- java 利用反射机制的刀实体类的属性以及对属性操作
- 对链表的综合操作
- 对PV操作问题的理解综合
- 爬虫的综合案例
- 18 理解反射的概念19构造方法的反射应用20成员变量的反射 21成员变量反射的综合案例22成员方法的反射
- 黑马程序员_成员变量的反射的综合案例举例
- 通过反射操作类的私有属性
- JSP对属性的操作
- 文件读取的综合案例
- emp的反射案例
- 对属性文件的读取的操作
- 综合/案例
- 综合案例
- 综合案例
- 实现文件复制、剪切、删除操作 Java
- 一篇很棒管理员安全文章,学习了
- SSH2学习手记(一)
- 其实!
- ACM经验之谈------坚持,坚持,还是坚持
- 反射对属性操作的综合案例
- VC6.0下WMI编程需要先安装Platform SDK
- 高精度算法总结及应用实例
- 强制代理
- 程序员
- GUI技巧
- c# datagridview导出到excel
- referenced file contains errors http struts.apache.org dtds struts-2.0...
- 设计模式之——Factory