歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

利用Java反射快速封裝JavaBean屬性

1、web開發中,對於頁面提交的屬性封裝到對象屬性中著實是件麻煩事,自己寫多了也想偷點懶,參照網上其他的一些文章,封裝了一個簡單的方法,貼上代碼

[java]

  1. /** 
  2.  * 對象快速封裝的方法 
  3.  *  
  4.  * @param object 需要進行屬性封裝的對象 
  5.  * @param fields 需要進行封裝的屬性 
  6.  * @param params 需要進行設置的值 
  7.  */  
  8. public static void encapsulateObject(Object object, String[] fields,  
  9.         Object[] params) {  
  10.     Class<?> cl = object.getClass();  
  11.     for (int i = 0; i < fields.length; i++) {  
  12.         StringBuffer buffer = new StringBuffer();  
  13.         try {  
  14.             Field field = cl.getDeclaredField(fields[i]);  
  15.             // 得到參數類型   
  16.             Class<?> paramType = field.getType();  
  17.             buffer.append("set");  
  18.             buffer.append(fields[i].substring(01).toUpperCase());  
  19.             buffer.append(fields[i].substring(1));  
  20.             Method method = cl.getDeclaredMethod(buffer.toString(),  
  21.                     paramType);  
  22.             method.invoke(object, params[i]);  
  23.         } catch (SecurityException e) {  
  24.             e.printStackTrace();  
  25.         } catch (NoSuchFieldException e) {  
  26.             e.printStackTrace();  
  27.         } catch (NoSuchMethodException e) {  
  28.             e.printStackTrace();  
  29.         } catch (IllegalArgumentException e) {  
  30.             e.printStackTrace();  
  31.         } catch (IllegalAccessException e) {  
  32.             e.printStackTrace();  
  33.         } catch (InvocationTargetException e) {  
  34.             e.printStackTrace();  
  35.         }  
  36.     }  
  37.   
  38. }  
使用一下:

[java]

  1. public static void main(String[] args) {  
  2.     Admin admin = new Admin();  
  3.     String[] method = { "userName""realName""lastLoginTime" };  
  4.     Object[] param = { "dfd""zhangsan",  
  5.             new Timestamp(new Date().getTime()) };  
  6.     encapsulateObject(admin, method, param);  
  7.     System.out.println(admin);  
  8. }  
復寫toString(),看一下結果:

[java]

  1. Admin [userName=dfd, realName=zhangsan, password=null, unit=null, lastLoginTime=2011-10-11 13:15:05.593, isdel=0, roles=[]]  
Copyright © Linux教程網 All Rights Reserved