import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import org.omg.Dynamic.Parameter;
public class BaseSetParam {
public void setParam(Object source, Object target) {
Class t = target.getClass();
Class s = source.getClass();
Field f[] = s.getDeclaredFields();
for (int i = 0; i < f.length; i++) {
String name = f[i].getName();
String setMethodName = "set"+name.substring(0,1).toUpperCase()+name.substring(1);
String getMethodName = "get"+name.substring(0,1).toUpperCase()+name.substring(1);
Field field;
try{
Method getMethod = s.getMethod(getMethodName, null);
Object param = getMethod.invoke(source, null);
field = t.getDeclaredField(name);
Class fType = field.getType();
Method setMethod = t.getMethod(setMethodName, fType);
Object[] params = new Object[1];
params[0] = param;
setMethod.invoke(target, params);
}catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
User user = new User();
user.setName("aaa");
Class c = user.getClass();
Field f[] = c.getDeclaredFields();
for (int i = 0; i < f.length; i++) {
String mod = Modifier.toString(f[i].getModifiers());
String name = f[i].getName();
String getMethodName = "get"+name.substring(0,1).toUpperCase()+name.substring(1);
Field field;
try{
field = c.getDeclaredField(name);
Class fType = field.getType();
Method method = c.getMethod(getMethodName, null);
System.out.println(method.invoke(user, null));
}catch (Exception e) {
e.printStackTrace();
}
// System.out.print(mod + " ");
// System.out.print("属性名字是:" + f[i].getName() + " ");
// System.out.println(f[i].getType().getName());
}
}
}