java Map to Object and Object to Map implementation code
- 2020-06-03 06:40:01
- OfStack
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!