第一种方法
利用org.apache.commons.beanutils 工具类实现
public static void main(String[] args) {
UserBean user = new UserBean();
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "CSDN");
map.put("gender", "male");
map.put("age", 70);
// 将map转换为bean
transMap2Bean(map, user);
}
public static void transMap2Bean(Map<String, Object> map, Object obj) {
if (map == null || obj == null) {
return;
}
try {
BeanUtils.populate(obj, map);
} catch (Exception e) {
e.printStackTrace();
}
}
测试截图
第二种方法
利用Introspector,PropertyDescriptor实现
public static void main(String[] args) {
UserBean user2 = new UserBean();
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("name", "Alibaba");
map2.put("gender", "male");
map2.put("age", 70);
transMap2Bean(map2, user2);
}
public static void transMap2Bean(Map<String, Object> map, Object obj) {
try {
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
if (map.containsKey(key)) {
Object value = map.get(key);
// 得到property对应的setter方法
Method setter = property.getWriteMethod();
setter.invoke(obj, value);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return;
}
测试截图
版权声明:本文为MooreChen_68573397原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。