java中 BeanUtils.copyProperties的用法

來源:互聯網
上載者:User

標籤:通過   方法   程式員   cte   除了   htm   位置   copy   span   

        BeanUtils提供了對java發射和自省API的封裝,這裡對BeanUtils.copyProperties的用法做一個小小的介紹。

        通過函數名可以知道,copyProperties函數是對屬性進行拷貝,該函數有兩個參數,一個是原始的資料,另一個是接收這些屬性的資料。這裡給大家介紹一個我遇到的一個坑:在不同的jar包中,該函數的兩個參數的位置不一樣,有一種是copyProperties(java.lang.Object dest , java.lang.Object source);另外一種恰恰相反,copyProperties(java.lang.Object source , java.lang.Object dest),因此在實際使用的時候需要注意參數的位置。

        當兩個對象之間的屬性完全一樣時,毫無疑問調用copyProperties時完全成功的,但是如果兩個對象之間存在不同的屬性時,會發生什麼情況呢,BeanUtils則不對這些屬性進行處理,需要程式員手動處理。

        除了BeanUtils以外,還有一個名為PropertyUtils的工具類,該類中也提供了copyProperties()方法,這個方法與前面說的方法相似,唯一不同點是PropertyUtils的工具類裡面的copyProperties()方法提供類型轉換功能,可以在支援的資料類型內進行數類型轉換。由於增加了類型轉換,因此速度會稍微慢一些。propertyUtils支援的轉換類型如下:

* java.lang.BigDecimal     * java.lang.BigInteger     * boolean and java.lang.Boolean     * byte and java.lang.Byte     * char and java.lang.Character     * java.lang.Class     * double and java.lang.Double     * float and java.lang.Float     * int and java.lang.Integer     * long and java.lang.Long     * short and java.lang.Short     * java.lang.String     * java.sql.Date     * java.sql.Time     * java.sql.Timestamp

需要注意的是這裡不支援java.util.Date,只支援java.sql.Date,因此在進行資料類型轉換時需要注意這個問題。

BeanUtils.copyProperties雖然很實用,但是其花費的時間比較長,超過手動調用get和set方法,如果對時間沒有太大要求可以考慮用這個函數。

本文參考自:https://www.cnblogs.com/HassanBlog/articles/3200239.html

java中 BeanUtils.copyProperties的用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.