緣由
一直用 BeanCopier
進行屬性複製,非常好用。最近又經常使用lombok簡化代碼,當我使用 @Accessors(chain = true)
進行鏈式set時發現複製的值都是 null
的。
推測原因
@Accessors(chain = true)
的作用是將 setter
方法的返回值由 void
修改爲 this
。 這導致 setter
的方法簽名改變,最終導致 BeanCopier
無法識別現有的 setter
方法。
解決方案
- 去除
@Accessors(chain = true)
註解 - 不使用
BeanCopier
, 使用org.springframework.beans.BeanUtils