ReflectPoint rp = new ReflectPoint(5, 6);这里为什么要传5,6进去呢?不明白是啥意思啊。。
//这里是调用了 ReflectPoint这个类的构造器,一定有这样一个构造器,public ReflectPoint(int x, int y)来创建一个ReflectPoint对象并初始化成员变量
public class ReflectTest2 {
public static void main(String[] args) throws Exception {
changeString();
}
private static void changeString() throws Exception {
// TODO Auto-generated method stub
ReflectPoint rp = new ReflectPoint(5, 6);
Field[] fields = rp.getClass().getFields();
for (Field field : fields) {
if (field.getType() == String.class) {
//比较两份字节码是否相同,所以要用 == 而不用 equals
//问题在这里: field.getType和 field.getClass返回的都是Class,它们有什么区别呢?
// field.getType 返回一个 Class 对象,它标识了此 Field 对象所表示字段的声明类型。
String strOld = (String) field.get(rp); Field没有getClass() 方法
怎么我把代码粘贴上来,前面的空格就没了呢,这样看太乱了。//因为你复制过来的编排的格式在这里不起作用了
String strNew = strOld.replace("b", "hi,");
field.set(rp, strNew);
}
}
System.out.println(rp);
}
}
class ReflectString {
public String str1 = "bhaoma";
public String str2 = "bnihao";
public String str3 = "bwobuhao";
public String toString() {
return str1 +":" + str2 + ":" + str3;
}
}
|