java项目中Map与Object如何实现相互转换
本篇文章给大家分享的是有关java项目中Map与Object如何实现相互转换,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联致力于网站设计制作、成都网站制作,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择创新互联,就选择了安全、稳定、美观的网站建设服务!
java Map转Object与 Object转Map
1、定义一个实体类:
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转换如下:
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存放了一个对象的姓名和年龄 Mapmap = 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; } }
运行结果:
run: Kobi 39 成功构建 (总时间: 0 秒)
3、Object转Map:
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); Mapmap = 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; } }
运行结果:
run: {age=39, name=Kobi} 成功构建 (总时间: 0 秒)
以上就是java项目中Map与Object如何实现相互转换,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。
本文名称:java项目中Map与Object如何实现相互转换
网页路径:http://cdiso.cn/article/ghjseh.html