1. 程式人生 > >BeanUtils Map與Bean轉換

BeanUtils Map與Bean轉換

 不多說了,直接上程式碼,以下內容實現限制,javaBean必須在一個單獨的檔案中,並且Bean要為public的。【這裡需要依賴apache的commons-beanutils-1.7.0.jar】

轉換類:

Java程式碼  收藏程式碼
  1. import java.lang.reflect.InvocationTargetException;  
  2. import java.util.Map;  
  3. import org.apache.commons.beanutils.BeanUtils;  
  4. public class test {  
  5.     public static void main(String[] args) {  
  6.         Person person1=new Person();  
  7.         person1.setName("name1");  
  8.         person1.setSex("sex1");  
  9.         Map<String, String> map=null;  
  10.         try {  
  11.             map = BeanUtils.describe(person1);  
  12.     //=============Bean轉換成Map=======================//  
  13.             System.out.println(map.size()+">>>>>>>>>>>"
    );  
  14.         } catch (IllegalAccessException e) {  
  15.             e.printStackTrace();  
  16.         } catch (InvocationTargetException e) {  
  17.             e.printStackTrace();  
  18.         } catch (NoSuchMethodException e) {  
  19.             // TODO Auto-generated catch block  
  20.             e.printStackTrace();  
  21.         }  
  22.         Person person=test.map2Bean(map, Person.class);  
  23.         System.out.println(person.getName());  
  24.     }  
  25.     /** 
  26.      *  
  27.      *  
  28.      * Map轉換層Bean,使用泛型免去了型別轉換的麻煩。 
  29.      * @param <T> 
  30.      * @param map   
  31.      * @param class1 
  32.      * @return 
  33.      */  
  34.     public static <T> T map2Bean(Map<String, String> map, Class<T> class1) {  
  35.         T bean = null;  
  36.         try {  
  37.             bean = class1.newInstance();  
  38.             BeanUtils.populate(bean, map);  
  39.         } catch (InstantiationException e) {  
  40.             e.printStackTrace();  
  41.         } catch (IllegalAccessException e) {  
  42.             e.printStackTrace();  
  43.         } catch (InvocationTargetException e) {  
  44.             e.printStackTrace();  
  45.         }  
  46.         return bean;  
  47.     }  
  48. }  

目標轉換Bean類。

Java程式碼  收藏程式碼
  1. public class Person {  
  2.     public Person() {  
  3.     }  
  4.     private String name;  
  5.     private String sex;  
  6.     public String getName() {  
  7.         return name;  
  8.     }  
  9.     public void setName(String name) {  
  10.         this.name = name;  
  11.     }  
  12.     public String getSex() {  
  13.         return sex;  
  14.     }  
  15.     public void setSex(String sex) {  
  16.         this.sex = sex;  
  17.     }  
  18. }