需求:将class文件2里的成员变量String str1=“boll”,str2="good",str3="bbb"中的o全改成a
class文件1:
import java.lang.reflect.Field;
public class Constructor {
public static void main(String[] args) throws Exception {
ReflectPoint pt1 = new ReflectPoint();
changeValue(pt1);
}
private static void changeValue(Object obj) throws IllegalArgumentException, IllegalAccessException {
Field[] fields=obj.getClass().getFields();
for(Field field:fields)
{
//两个使用的是同一个字节码
if(field.getType()==String.class)
{
String oldString=(String)field.get(obj);
String newString=oldString.replace('o','a');
field.set(obj,newString);
}
}
System.out.println(obj.toString());
}
}
class文件2:
public class ReflectPoint {
public String str1="boll";
public String str2="good";
public String str3="bbb";
@Override
public String toString()
{
return str1+"::"+str2+"::"+str3;
}
}