package com.cn;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.junit.Test;
public class DemoReflect {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Cat newCat = new Cat();
newCat.setField1("AA");
newCat.setField2("BB");
newCat.setField3("BB");
newCat.setField4(4444444);
newCat.setField5('P');
//创建类对象
Class cat = Cat.class;
Object neww = cat.newInstance();
//获取类方法
Field[] fields = cat.getDeclaredFields();
for (Field field : fields) {
//获取get方法字符串
String name = "get"+ (field.getName().charAt(0)+"").toUpperCase()+field.getName().substring(1);
//获取get返回值
Object getField = cat.getDeclaredMethod(name).invoke(newCat);
//获取sett方法字符串
name = "set"+ (field.getName().charAt(0)+"").toUpperCase()+field.getName().substring(1);
// System.out.println(name);
//新对象赋值
cat.getDeclaredMethod(name,field.getType()).invoke(neww, getField);
}
System.out.println(((Cat)neww).getField5());
}
}
package com.cn;
public class Cat {
private String field1 ;
private String field2 ;
private String field3 ;
private int field4 ;
private char field5 ;
;
/**
* @return the field1
*/
public String getField1() {
return field1;
}
/**
* @return the field2
*/
public String getField2() {
return field2;
}
/**
* @return the field3
*/
public String getField3() {
return field3;
}
/**
* @return the field4
*/
public int getField4() {
return field4;
}
/**
* @param field1 the field1 to set
*/
public void setField1(String field1) {
this.field1 = field1;
}
/**
* @param field2 the field2 to set
*/
public void setField2(String field2) {
this.field2 = field2;
}
/**
* @param field3 the field3 to set
*/
public void setField3(String field3) {
this.field3 = field3;
}
/**
* @param field4 the field4 to set
*/
public void setField4(int field4) {
this.field4 = field4;
}
/**
* @return the field5
*/
public char getField5() {
return field5;
}
/**
* @param field5 the field5 to set
*/
public void setField5(char field5) {
this.field5 = field5;
}
}