天天看點

BeanUtils.copyProperties(A,B)屬性複制

針對項目中出現的BeanUtils.copyProperties(A,B)經常會出現前後指派順序不一緻的情況,後來查詢才知道其中的差別。

BeanUtils提供對Java檢討和自省API的包裝。主要目的是利用反射機制對JavaBean的屬性進行處理。由于一個JavaBean通常會包含較多屬性,很多情況下需要對JavaBean進行處理導緻大量get/set代碼堆積,增加了代碼長度和閱讀代碼的難度。

于是BeanUtils.copyProperties(A,B)提供了JavaBean之間的屬性複制。當然這個方法值對于相同屬性之間的複制,當兩個實體中存在不同屬性時,BeanUtils無法對其進行處理,需程式員使用的set()方法進行處理。目前有兩套BeanUtils的jar可以進行複制操作,但是用法不太一樣:

① package org.springframework.beans;

BeanUtils.copyProperties(A,B) --> 是将A中的值指派給B

② package org.apache.commons.beanutils;(常用)

BeanUtils.copyProperties(A,B) --> 是将B中的值指派給A

BeanUtils.copyProperties(A,B)針對ArrayList的copy