您好,登錄后才能下訂單哦!
今天小編給大家分享一下Map與JavaBean相互轉換的工具類怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
使用范圍:JavaBean
類對象的屬性不能是數組、List
、Set
、Map
public class MapBeanUtil { /** * JavaBean轉Map * @param obj * @return */ public static Map<String, Object> bean2Map(Object obj) { Map<String, Object> map = new LinkedHashMap<>(); Class<?> clazz = obj.getClass(); for (Field field : clazz.getDeclaredFields()) { field.setAccessible(true); String fieldName = field.getName(); Object value = null; try { value = field.get(obj); } catch (IllegalAccessException e) { e.printStackTrace(); } if (value == null){ value = ""; } map.put(fieldName, value); } return map; } /** * Map轉JavaBean * @param clazz * @param map * @param <T> * @return */ public static <T> T map2Bean(final Class<T> clazz, final Map<String, ? extends Object> map) { if (map == null) { return null; } T res = null; try { res = clazz.getDeclaredConstructor().newInstance(); //獲取到所有屬性,不包括繼承的屬性 Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { //獲取字段的修飾符 int mod = field.getModifiers(); if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { continue; } //設置對象的訪問權限 field.setAccessible(true); //根據屬性名稱去map獲取value if(map.containsKey(field.getName())) { //給對象賦值 field.set(res, map.get(field.getName())); } } } catch (Exception e) { e.printStackTrace(); } return res; } public static void main(String[] args) throws Exception { HashMap<String, Object> map = new HashMap<>(); map.put("id", 1001); map.put("username", "zhangsan"); map.put("password", "123456"); map.put("nickname", "張三"); map.put("email", "369950806@qq.com"); map.put("gender", true); map.put("birth", LocalDate.now()); map.put("avatar", "/aa/bb/ab.jpg"); map.put("role", "VIP"); map.put("status", (byte) 1); map.put("salt", "ldfkasjghweoiq324"); map.put("createTime", LocalDateTime.now()); map.put("updateTime", LocalDateTime.now()); User user = map2Bean(User.class, map); System.out.println(user); Map<String, Object> res = bean2Map(user); System.out.println(map); } }
User類的代碼:
public class User { private Integer id; private String username; private String password; private String nickname; private String email; private Boolean gender; private LocalDate birth; private String avatar; private String role; private Byte status; private String salt; private LocalDateTime createTime; private LocalDateTime updateTime; }
以上就是“Map與JavaBean相互轉換的工具類怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。