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進去,並非深拷貝。spa

相關文章
相關標籤/搜索