Java Bean和Map互轉是在Java編程中經常用到的技巧。Java Bean是指一個符合特定標準的Java類,該類中的屬性通過getter和setter方法來獲取和設置值。而Map則是一種鍵值對的數據結構,可以用來存儲一組數據。下面介紹Java Bean和Map之間的互轉方法。
public static MapbeanToMap(Object obj) throws Exception { if(obj == null) { return null; } Map map = new LinkedHashMap<>(); BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) { String k = property.getName(); if (!k.equals("class")) { Method method = property.getReadMethod(); Object value = method.invoke(obj); map.put(k, value); } } return map; }
上面的代碼實現了將Java Bean轉換為Map的功能。使用Introspector類獲取obj的屬性描述器,然后遍歷所有屬性并讀取其值。最后將屬性名和值存儲在Map中并返回。
public staticT mapToBean(Map map, Class clazz) throws Exception { if(map == null) { return null; } T obj = clazz.newInstance(); BeanInfo beanInfo = Introspector.getBeanInfo(clazz); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) { String key = property.getName(); if (map.containsKey(key)) { Object value = map.get(key); Method setter = property.getWriteMethod(); setter.invoke(obj, value); } } return obj; }
上面的代碼實現了將Map轉換為Java Bean的功能。使用Introspector類獲取clazz的屬性描述器,然后遍歷所有屬性并按照對應關系設置屬性值。最后返回Java Bean對象。
Java Bean和Map互轉常用于將數據從Java類中轉換到Map中,或者將數據從數據庫中轉換到Java類中。通過這種方法可以方便地進行數據轉換,從而簡化編程。