BeanUtils.copyProperties()錯誤使用,給自己挖了坑


場景:需要對某個集合中的所有元素拷貝到另一個集合中,想着BeanUtils.copyProperties()可以深拷貝對象,誤以為也可以拷貝集合,於是乎寫下了如下代碼

  List<CostRule> meetCostRuleList = Lists.newArrayList();
  BeanUtils.copyProperties(partItemRuleList, meetCostRuleList);

以上的操作結果不會報錯,但是 meetCostRuleList  集合仍是一個空集合;由於業務復雜,該塊沒有被測試到,上線初了問題,后來更改為

 List<CostRule> meetCostRuleList = Lists.newArrayList();
 partItemRuleList.forEach(costRule -> meetCostRuleList.add(costRule));

謹記:BeanUtils.copyProperties只對bean屬性進行復制,這里的復制屬於淺復制。且不能復制集合和數組。BeanUtils.copyProperties利用反射,直接將對象的引用set進去,並不是深拷貝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM