中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中BeanUtils怎么用

發布時間:2021-11-03 11:08:19 來源:億速云 閱讀:265 作者:小新 欄目:編程語言

這篇文章主要介紹Java中BeanUtils怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

BeanUtils使用步驟

步驟一:項目中導入commons-beanutils.jar包

步驟二:在項目中就可以使用對javaBean的一些相關操作,比如:

    1). 給對象賦值:BeanUtils.setProperty(對象, 屬性名, 屬性值);

    2). 把一個javaBean的屬性拷貝到另一個javaBean對象中: BeanUtils.copyProperties(源對象,新對象);

    ...

BeanUtils 常用方法  

 常用方法描述 
 copyProperties(Object dest, Object orig) 對象拷貝
 copyProperty(Object bean, String name, Object value) 指定屬性拷貝到指定的對象中
 cloneBean(Object bean) 對象的克隆
 populate(Object bean, Map<String,? extends Object> properties) 將map數據拷貝到javabean中(map的key要與javabean的屬性名稱一致)
 setProperty(Object bean, String name, Object value) 設置指定屬性的值

案例

 1.創建一個學生實體類(Student.java)

public class Student{
   private String name;    private int age;    private String sex;    public Student() {
   }    getXxx和setXxx省略…… }

2.測試BeanUtils的常見用法

@Test
public void BeanUtilsTest() throws Exception {
   Map<String, Object> map = new HashMap<String, Object>();
   map.put("name", "張三");
   map.put("age", 12);
   map.put("sex", "男");
   // 將map數據拷貝到Student中
   Student stu= new Student();
   BeanUtils.populate(stu, map);
  //Student [name=張三, age=12,  sex=男]
   System.out.println(stu);
   // 對象的拷貝
   Student stu1 = new Student ();
   BeanUtils.copyProperties(stu , stu1 );
  //Student [name=張三, age=12,  sex=男]
   System.out.println(stu1);

   // 拷貝指定的屬性
   Student stu2 = new Student ();
   BeanUtils.copyProperty(stu2 , "name", "李四");
   // Student [name=李四, age=0,  sex=null]
   System.out.println(stu2 );

// 設置指定的屬性
   BeanUtils.setProperty(stu2, "sex", "女");
  // Student [name=李四, age=0, sex=女]
   System.out.println((stu2);
   // 克隆對象
   Object object = BeanUtils.cloneBean(stu2);
  // Animal [name=李四, age=0, sex=女]
   System.out.println(object);
}

注意事項:BeanUtils在進行數據拷貝中,不管數據是否有值,會直接覆蓋,這樣就會存在有些需求無法滿足的情況,不如說當拷貝的值為null時,不允許覆蓋,可以進行如下操作:

public static String[] getNullPropertyNames (Object source) {
        final BeanWrapper src = new BeanWrapperImpl(source);
        java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();
        Set<String> emptyNames = new HashSet<String>();
        for(java.beans.PropertyDescriptor pd : pds) {
            Object srcValue = src.getPropertyValue(pd.getName());
            if (srcValue == null) emptyNames.add(pd.getName());
        }
        String[] result = new String[emptyNames.size()];
        return emptyNames.toArray(result);
    }

BeanUtils.copyProperties(源對象,新對象,getNullPropertyNames (源對象));

以上是“Java中BeanUtils怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁德市| 若尔盖县| 义乌市| 桓仁| 桐梓县| 内乡县| 黑龙江省| 高尔夫| 商洛市| 阿拉尔市| 那坡县| 巴东县| 图木舒克市| 宝丰县| 青神县| 会昌县| 涟源市| 华亭县| 曲松县| 承德市| 平谷区| 扬州市| 齐齐哈尔市| 阳城县| 贡山| 晋州市| 张家川| 海伦市| 泸定县| 宁津县| 苏州市| 莒南县| 兴海县| 琼结县| 南昌县| 灯塔市| 汕尾市| 巴马| 隆安县| 横山县| 江阴市|