黑马程序员技术交流社区
标题:
反射小练习
[打印本页]
作者:
孟伟娟
时间:
2012-12-3 16:08
标题:
反射小练习
把指定类中的String字段值中的“b”改成“#”
import java.lang.reflect.Field;
public class ReflectTest1 {
public static void main(String[] args) throws Exception{
//获取class对象
Class cls = new ReflectPoint().getClass();
//获取字段,得到的是所有公有和父类中的方法(这个例子中没有继承,所以只有本类的公有方法)
Field[] field = cls.getFields();
Object obj = cls.newInstance();
for(int i=0;i<field.length;i++){
//判断是不是String类型,是,就把值中的“b”改成"#"
if(field[i].getType() == String.class){
//打印原先的值
System.out.println("旧值为:" + field[i].getName() + ": " + field[i].get(obj) );
//更改值
String oldValue =(String)(field[i].get(obj));
String newValue = oldValue.replace('b', '#');
field[i].set(obj, newValue);
//打印改过之后的值
System.out.println("新值为:" + field[i].getName() + ": " + field[i].get(obj) );
}
}
}
}
复制代码
打印结果为:
旧值为:str1: abc
新值为:str1: a#c
旧值为:str2: febbbcc,woheboleb
新值为:str2: fe###cc,wohe#ole#
旧值为:str3: bbbb
新值为:str3: ####
作者:
许庭洲
时间:
2012-12-3 20:28
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2