一直以来都打算准备写点东西,把所学所思的东西记录下来,方便日后学习和总结。但是由于之前技术水平有限,不敢随便发表一些技术文章,以免误人子弟,一直拖了三年,现在我积累了一定的经验,才敢勉强公开发表自己的一些认知和见解,如有不对之处,希望大家能够批评指正。
在java服务化项目中,客户端和服务端之间交互经常用到BeanCopy,其目的是为了方便类之间的赋值,简单方便,但是经常会遇到复合对象赋值不上去的情况,究其原因是对BeanUtils.copyProperties(Object source, Object target)方法底层源码的不了解导致的,下面我来一步一步解释其原因。
先看一个例子:
@Data
public class BdmTeamMonthNewStoreTopResult implements Serializable {
private static final long serialVersionUID = -3251482519506276368L;
/**
* 排名列表
*/
private List<BdmTeamMonthNewStoreTopInfo> topInfoList;
/**
* 我的排名信息
*/
private BdmTeamMonthNewStoreTopMyInfo myTopInfo;
@Override
public String toString() {
return ReflectionToStringBuilder.reflectionToString(this,
ToStringStyle.SHORT_PREFIX_STYLE);
}
}
@Data
public class MonthNewStoreTopInfoResponse implements Serializable {