package cn.itcast.day1;
import java.lang.*;
import java.text.DateFormat.Field;
public class ReflectTest {
public static void main(String[] args) throws Exception {
ReflectPoint pt1 = new ReflectPoint();
changStringValue(pt1);
System.out.println(pt1);
}
/* 按照老师的讲解做,基本上做完了,但是遇到一个问题:“在定义变量Field时,
* 在该变量前面必须把完整的类型写出来,尝试过导入包,还是不行”*/
private static void changStringValue(Object obj) throws Exception{
// TODO Auto-generated method stub
java.lang.reflect.Field[] fields = obj.getClass().getFields();
for(java.lang.reflect.Field field : fields){
if(field.getType() == String.class){
String oldValue = (String)field.get(obj);
String newValue = oldValue.replace('b', 'a');
field.set(obj, newValue);
}
}
}
}
package cn.itcast.day1;
public class ReflectPoint {
public String str1 = "ball";
public String str2 = "basketball";
public String Str3 = "itcast";
public ReflectPoint() {}
@Override
public String toString() { /*只要创建了新对象,那么就会调用该方法*/
return "ReflectPoint [Str3=" + Str3 + ", str1=" + str1 + ", str2="
+ str2 + "]";
}
}