JAVA 反射 根据map中的key,value给对象赋值
public <T> T select(Map<String, Object> map,Class<T> clazz) {
try {
Class<?> classZ = Class.forName(clazz.getName());
Field[] declaredFields = classZ.getDeclaredFields();
T o = (T) classZ.newInstance();
for (Field field : declaredFields) {
System.out.println(field.getName());
if(map.containsKey(field.getName())){
Object s = map.get(field.getName());
field.setAccessible(true);
field.set(o,s);
}
}
System.out.println(o);
return o;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
return null;
}
测试方法
public void send() {
Map<String, Object> map = new HashMap<>();
map.put("id", "v1");
map.put("time", LocalDateTime.now());
map.put("name", "v123");
map.put("content", "v1234");
select(map, AAA.class);
}