public static void main(String[] args)throws Exception {
// Class cls1 = Class.forName("question.ooTest");
Test test = new Test();
method(test);
System.out.println(test.toString());
}
public static void method(Object obj)throws Exception{
Field[] f1 = obj.getClass().getDeclaredFields();
System.out.println("f1"+ f1);
for (Field field : f1) {
field.setAccessible(true);
Object f0 = field.getType();
if(f0 == String.class){
String oldValue = (String)field.get(obj);
String newValue = oldValue.replace('a', 'q');
field.set(obj, newValue);
}
}
}
}仔细对比
复制代码
作者: xkfxm 时间: 2013-8-8 18:49
你好,看看你的method方法中接受的是一个Object对象,当传入一个Class的实例对象时也是可以的;
但是如果你传入了一个class(字节码)对象后就不该再对cls1获取字节码;
按照你的需求,主方法中可以写成:
Test test = new Test();
method(test);