首页 > 开发 > Java > 正文

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

2024-07-13 10:03:51
字体:
来源:转载
供稿:网友

java/199910.html">java/171507.html">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存放了一个对象的姓名和年龄  Map<string,object> map = new HashMap<string,object>();  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> T transferMapToUser(Map<string,object> map,Class<t> 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> T transfer(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();     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:Kobi39成功构建 (总时间: 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);     Map<string, object=""> map = transBean2Map(user);  System.out.println(map);    }  public static Map<string, object=""> transBean2Map(Object obj) {   if (obj == null) {   return null;  }  TreeMap<string, object=""> 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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表