本帖最后由 陈嘉宾 于 2012-6-17 20:22 编辑
private static void changeStringValue(Object obj)这里为什么不能直接放String呢?还有if(field.getType()==String.class)这句话是什么意思主要是getType没明白什么意思
public class ReflectPoint {
public String str1="ball";
public String str2="basketball";
public String str3="itcast";
@Override
public String toString(){
return str1+":"+str2+":"+str3;
}
}
public static void main(String[] args) throws Exception{
changeStringValue(pt1);
System.out.println(pt1);
}
private static void changeStringValue(Object obj) throws Exception{
Field[] fileds=obj.getClass().getFields();
for(Field field:fileds){
//if(field.getType().equals(String.class)){;
if(field.getType()==String.class){
String oldValue =(String)field.get(obj);
String newValue=oldValue.replace('b','a');
field.set(obj, newValue);
}
}
}
} |