您好,登錄后才能下訂單哦!
這篇文章主要介紹“BeanUtils.copyProperties復制對象結果為空怎么解決”,在日常操作中,相信很多人在BeanUtils.copyProperties復制對象結果為空怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”BeanUtils.copyProperties復制對象結果為空怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
細心比對,發現原來是導錯了包導致的
import org.springframework.beans.BeanUtils;
import org.apache.commons.beanutils.BeanUtils;
兩者的copyProperties方法參數位置不同org.springframework.beans.BeanUtils: copyProperties(sourceDemo, targetDemo)
org.apache.commons.beanutils.BeanUtils: copyProperties(targetDemo, sourceDemo)
要求兩個Bean的屬性名相同,且有對應的setXxx方法和getXxx方法。其實底層原理是使用sourceDemo的getXxx方法和targetDemo的setXxx方法
sourceDemo有的屬性而targetDemo沒有的屬性,不會封裝到targetDemo對象中;targetDemo有的屬性而sourceDemo沒有的屬性,會封裝到targetDemo中,數據為默認值(注意基本類型默認值與引用類型默認值不同)
類型轉換問題:基本類型與其對應的封裝類型可以相互轉換。org.springframework.beans.BeanUtils與org.apache.commons.beanutils.BeanUtils對于String和Date類型轉換的情況是不同的
總結:發現其實只需要將兩個對象換個位置就好了。。。
在使用BeanUtils時,會先引用對應的包,但是如果包引用不對的話,那么使用BeanUtils.copyProperties(Object value1, Object value2)進行數據拷貝,可能是value1拷貝到value2上;也有可能是value2拷貝到value1上。
包org.apache.commons.beanutils.BeanUtils, 則結果是:
value2拷貝到value1上,即value2的值會覆蓋到value1上;
包org.springframework.beans.BeanUtils, 則結果是:
value1拷貝到value2上,即value1的值會覆蓋到value2上。
到此,關于“BeanUtils.copyProperties復制對象結果為空怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。