場景:須要對某個集合中的全部元素拷貝到另外一個集合中,想着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