将任意一个对象中的所有String类型 的成员变量所对应字符串中的“b”改成“a”(利用反射)

package Text; /** * 将任意一个对象中的所有String类型 的成员变量所对应字符串中的“b”改成“a” * 利用反射; * @author hb */ public class ReflectPoint { public String str1="ball"; public String str2="basketball"; public String str3="itcast"; public String toString(){ return str1+":"+str2+":"+str3; } }

 

package Text; import java.lang.reflect.Constructor; import java.lang.reflect.Field; public class ReflectTest { public static void main(String[] args)throws Exception{ ReflectPoint rp=new ReflectPoint(); changeStringValue(rp); System.out.println(rp); } private static void changeStringValue(Object obj) throws Exception { Field[] fields=obj.getClass().getFields(); for(Field field:fields){ if(field.getType()==String.class)//比较字节码用== { String oldValue=(String)field.get(obj); String newValue=oldValue.replace('b','a'); field.set(obj, newValue); } } } }

你可能感兴趣的:(javase例题)