把指定类中的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: ####
|
|