java Map to Object and Object to Map implementation code


java Map Object and Object Map

1. Define an entity class:

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. The conversion from Map to Object is as follows:

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){

  // Suppose you have 1 a Map To store the 1 The names and ages of the objects
  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);
     //  get property The corresponding setter methods
     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;
 }

}

Operation results:

run:
Kobi
39
 Successful build  ( The total time : 0  seconds )

3. Object to 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();
    //  filter class attribute
    if (key.equals("class")) {
     continue;
    }

    //  get property The corresponding getter methods
    Method getter = property.getReadMethod();
    Object value = getter.invoke(obj);

    map.put(key, value);
   }
  } catch (Exception e) {
   System.out.println("transBean2Map Error " + e);
  }
  return map;
 }
}

Operation results:

run:
{age=39, name=Kobi}
 Successful build  ( The total time : 0  seconds )

Thank you for reading, I hope to help you, thank you for your support to this site!