Method getMethod = classType.getMethod(getMethodName,
new Class<?>[] {});
Method seMethod = classType.getMethod(setMethodName,
new Class<?>[] { field.getType() });
/*最开始认为以下两个invoke方法的第一和参数都应该调用copyObj,
* 但是最终的结果为输出为默认的空值。
* copyObj:程序前面通过Constructor类的newInstance方法
* 获取待操作类的一个实例;
//Object value = getMethod.invoke(copyObj, new Object[] {});
//seMethod.invoke(copyObj, new Object[] { value });
/*现在改用如下方式了,输出就正常了
* 所以产生疑惑:为什么第一个方法调用的object对象而不是copyObj呢?
*
*/
Object value = getMethod.invoke(object, new Object[] {});
seMethod.invoke(copyObj, new Object[] { value });
}
return copyObj;
}
public static void main(String[] args) throws Exception {
private long id;
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}作者: 漫步人 时间: 2013-10-24 14:03
Object value = getMethod.invoke(object, new Object[] {});
getMethod方法是Object对象(类型),并不能真对获取具体的(对象)类型。
seMethod.invoke(copyObj, new Object[] { value });
而seMethod可以对具体对象设值