JAVA 反射 获取成员变量的顺序
最近用到JAVA中的反射相关,遇到了点问题,请教大侠们一下。
有一个类:
public class CategoryBean {
private int CategoryId;
private String CategoryName;
private int parentId;
public CategoryBean()
{}
public int getCategoryId() {
return CategoryId;
}
public void setCategoryId(int categoryId) {
CategoryId = categoryId;
}
public String getCategoryName() {
return CategoryName;
}
public void setCategoryName(String categoryName) {
CategoryName = categoryName;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
}
在一个测试程序中:public class ReflectTester {
public Object copy(Object object) throws Exception {
// 获得对象的类型
Class<?> classType = object.getClass();
System.out.println("Class:" + classType.getName());
// 通过默认构造方法创建一个新的对象
Object objectCopy = classType.getConstructor(new Class[]{}).newInstance(new Object[]{});
// 获得对象的所有属性
Field fields[] = classType.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
String fieldName = field.getName();
System.out.println("name====="+fieldName);
String firstLetter = fieldName.substring(0, 1).toUpperCase();
// 获得和属性对应的getXXX()方法的名字
String getMethodName = "get" + firstLetter + fieldName.substring(1);
// 获得和属性对应的setXXX()方法的名字
String setMethodName = "set" + firstLetter + fieldName.substring(1);
// 获得和属性对应的getXXX()方法
Method getMethod = classType.getMethod(getMethodName, new Class[]{});
// 获得和属性对应的setXXX()方法
Method setMethod = classType.getMethod(setMethodName, new Class[]{field.getType()});
// 调用原对象的getXXX()方法
Object value = getMethod.invoke(object, new Object[]{});
System.out.println("value===="+value);