이 글에서는 주로 Java Map to Object 및 Object to Map 구현 코드에 대한 관련 정보를 소개합니다. 필요한 친구는
java Map to Object 및 Object to 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 to 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: Kobi 39 成功构建 (总时间: 0 秒)3. 매핑할 개체:
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 Map to Object 및 Object to Map 구현 코드에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!