本帖最后由 821728010 于 2013-6-7 19:47 编辑
我想通过反射改变一个类中所有String类型字段的值,这段代码却不成功,哪里有问题?
import java.lang.reflect.*;
public class FsFiled {
public static void main(String[] args)throws Exception{
A a = new A();
Field[] f = a.getClass().getFields();
for(Field ff : f ){
if(ff.getType() == String.class){
String os = (String)ff.get(a);
String ns = os.replace('a','h');
ff.set(a,ns);
System.out.println("consturctor");
}
}
System.out.println(a.str1);
System.out.println(a.str2);
}
}
class A{
String str1 = "java";
String str2 = "abcd";
}
|
|