import lombok.Data;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@Data
public class MyFK {
String name;
String password;
/**
* 通过反射遍历对象得到对象的值
* @param myFK
* @throws Exception
*/
public void test(MyFK myFK)throws Exception{
Field[] field = myFK.getClass().getDeclaredFields();
for(int i=0;i<field.length;i++){
String fieldName = field[i].getName();//字段名称
String methname = fieldName.substring(0,1).toUpperCase()+fieldName.substring(1); //将属性的首字符大写,方便构造get,set方法
Method m = myFK.getClass().getMethod("get" + methname);
String value = (String)m.invoke(myFK);
System.out.println(value);
}
}
}
/** * 通过反射遍历给对象赋值 其中map的key需要跟反射类的属性一致 * @param * @throws Exception */ public void test2(Map<String,String> map)throws Exception{ MyFK myFK = new MyFK(); Field[] field = myFK.getClass().getDeclaredFields(); Set<String> keysets = map.keySet(); for(int i=0;i<field.length;i++){ String fieldName = field[i].getName();//字段名称 if(keysets.contains(fieldName)){ String value = map.get(fieldName); String methname = fieldName.substring(0,1).toUpperCase()+fieldName.substring(1); //将属性的首字符大写,方便构造get,set方法 Method m = myFK.getClass().getMethod("set"+methname,String.class); m.invoke(myFK,value ); } } System.out.println(myFK.toString()); }