斷點

          每天進步一點點!
          posts - 174, comments - 56, trackbacks - 0, articles - 21

          BeanUtils

          Posted on 2010-05-30 09:25 斷點 閱讀(429) 評論(0)  編輯  收藏 所屬分類: Apache

          apache.commons.beanutils.BeanUtils
          該class提供了一系列的靜態方法操作已存在的符合JavaBean規范定義的Java Class.這里強調的JavaBean規范,簡單來說就是一個Java Class通過一系列getter和setter的方法向外界展示其內在的成員變量(屬性)。

          通過BeanUtils的靜態方法,我們可以:
          復制一個JavaBean的實例--BeanUtils.cloneBean();
          在一個JavaBean的兩個實例之間復制屬性--BeanUtils.copyProperties(),BeanUtils.copyProperty();
          為一個JavaBean的實例設置成員變量(屬性)值--BeanUtils.populate(),BeanUtils.setProperty();
          從一個JavaBean的實例中讀取成員變量(屬性)的值--BeanUtils.getArrayProperty(),BeanUtils.getIndexedProperty(),BeanUtils.getMappedProperty(),BeanUtils.getNestedProperty(),BeanUtils.getSimpleProperty(),BeanUtils.getProperty(),BeanUtils.describe();

          1、BeanUtils.cloneBean(java.lang.object bean)
          為bean創建一個clone對象,方法返回類型為Object.此方法的實現機制建立在bean提供的一系列的getters和setters的基礎之上.此方法的正常使用代碼非常簡單,故略掉.

           

          2、BeanUtils.copyProperties(java.lang.Object dest, java.lang.Object orig)
          一個bean class有兩個實例:orig和dest,將orig中的成員變量的值復制給dest,即將已經存在的dest變為orig的副本.與BeanUtils.cloneBean(java.lang.object bean)的區別就在于是不是需要創建新的實例了.
          原文如下:Copy property values from the origin bean to the destination bean for all cases where the property names are the same.


          3、BeanUtils.setProperty(java.lang.Object bean,java.lang.String name,java.lang.Object value)
          這個方法簡單的說就是將bean中的成員變量name賦值為value.


          BeanUtils.populate(java.lang.Object bean, java.util.Map properties)
          使用一個map為bean賦值,該map中的key的名稱與bean中的成員變量名稱相對應.注意:只有在key和成員變量名稱完全對應的時候,populate機制才發生作用;但是在數量上沒有任何要求,如map中的key如果是成員變量名稱的子集,那么成員變量中有的而map中不包含的項將會保留默認值;同樣,如果成員變量是map中key的子集,那么多余的key不會對populate的結果產生任何影響.恩,結果就是populate只針對map中key名稱集合與bean中成員變量名稱集合的交集產生作用。


          4、BeanUtils.getArrayProperty(java.lang.Object bean,java.lang.String name)
          獲取bean中數組成員變量(屬性)的值.
          如果我們指定的name不是數組類型的成員變量,結果會如何?會不會拋出類型錯誤的exception呢?回答是不會,仍然會返回一個String的數組,數組的第一項就是name對應的值(如果不

          是String類型的話,JVM會自動的調用toString()方法的).


          BeanUtils.getIndexedProperty(java.lang.Object bean,java.lang.String name)
          BeanUtils.getIndexedProperty(java.lang.Object bean,java.lang.String name,int index)
          這兩個方法都是獲取數組成員變量(屬性)中的單一元素值的方法.
          比如,我想得到SampleObject中words[1]的值,用法如下:
          BeanUtils.getIndexedProperty(sampleOjbectInstance,"words[1]");
          BeanUtils.getIndexedProperty(sampleOjbectInstance,"words",1);


          BeanUtils.getMappedProperty(java.lang.Object bean,java.lang.String name)
          BeanUtils.getMappedProperty(java.lang.Object bean,java.lang.String name,java.lang.String key)


          BeanUtils.describe(java.lang.Object bean)
          將一個bean以map的形式展示。

          來源:http://www.chinaitpower.com/A/2005-07-03/150232.html

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 尚志市| 孟村| 瑞丽市| 神池县| 奉节县| 喀喇沁旗| 孝感市| 泽州县| 广宗县| 昌宁县| 儋州市| 寿光市| 东港市| 白银市| 屏山县| 奈曼旗| 宁河县| 砀山县| 客服| 从江县| 门头沟区| 瑞昌市| 巧家县| 南皮县| 望城县| 法库县| 建始县| 宜昌市| 盐源县| 肇源县| 常德市| 铜梁县| 龙里县| 罗平县| 奉节县| 蕲春县| 巴彦淖尔市| 纳雍县| 芜湖市| 岳普湖县| 两当县|