html5中文学习网

您的位置: 首页?>?网络编程?>?java二元倍投表 ? 正文

java Map转Object与Object转Map实现代码_java_

[ ] 已经帮助:人解决问题

java Map转Object与 Object转MapK8XHTML5中文学习网 - HTML5先行者学习网

1、定义一个实体类:K8XHTML5中文学习网 - HTML5先行者学习网

package reflect; public class User {   private String name;   private int age;  public String getName() {  return name; }  public void setName(String name) {  this.name = name; }  public int getAge() {  return age; }  public void setAge(int age) {  this.age = age; }}

2、Map转Object转换如下:K8XHTML5中文学习网 - HTML5先行者学习网
K8XHTML5中文学习网 - HTML5先行者学习网

package reflect; import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map; public class testMapToObject {   public static void main(String[] args){     //假设有一个Map存放了一个对象的姓名和年龄  Map map = new HashMap();  map.put("name", "Kobi");  map.put("age", 39);     User user = transferMapToUser(map,User.class);     System.out.println(user.getName());  System.out.println(user.getAge()); }   public static  T transferMapToUser(Map map,Class classT){  try {   return transfer(map,classT.newInstance());  } catch (InstantiationException ex) {   System.out.println("what the fuck?");  } catch (IllegalAccessException ex) {   System.out.println("what the fuck?");  }  return null; }   public static  T transfer(Map 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();     try {      setter.invoke(obj, value);     } catch (IllegalArgumentException ex) {      System.out.println("what the fuck?");     }    }   }  } catch (Exception ex) {   System.out.println("what the fuck?");  }   return (T) obj; }  }

运行结果:K8XHTML5中文学习网 - HTML5先行者学习网
K8XHTML5中文学习网 - HTML5先行者学习网

run:Kobi39成功构建 (总时间: 0 秒)

3、Object转Map:K8XHTML5中文学习网 - HTML5先行者学习网

package reflect; import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.util.Map;import java.util.TreeMap; public class testObjectToMap {   public static void main(String[] args){  User user = new User();  user.setName("Kobi");  user.setAge(39);     Map map = transBean2Map(user);  System.out.println(map);    }  public static Map transBean2Map(Object obj) {   if (obj == null) {   return null;  }  TreeMap map = new TreeMap<>();  try {   BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());   PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();   for (PropertyDescriptor property : propertyDescriptors) {    String key = property.getName();    // 过滤class属性    if (key.equals("class")) {     continue;    }         // 得到property对应的getter方法    Method getter = property.getReadMethod();    Object value = getter.invoke(obj);         map.put(key, value);   }  } catch (Exception e) {   System.out.println("transBean2Map Error " + e);  }  return map; }}

运行结果:?K8XHTML5中文学习网 - HTML5先行者学习网

run:{age=39, name=Kobi}成功构建 (总时间: 0 秒)

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!K8XHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助