我使用BeanUtils.copyProperties从另一个bean复制一个bean。 如果我使用Apache或Spring的copyProperties并不重要。 他们都削减了我的字符串,甚至在某个地方转移了那个剪切值(只有一种直觉)
我有类似的东西,
OriginalBean originalBean = session.getOriginalBean;
OriginalBean cloneBean = new OriginalBean();
BeanUtils.copyProperties(originalBean, cloneBean);//source vs target depending on which import I use
originalBean会有这样的东西,
String account; //"550011"
String accountNumber; //""
在copyProperties之后,cloneBean会有这样的东西,
String account; //"0011"
String accountNumber; //"55"
它始终是前2个角色。
其他字符串不受此影响。 (或者我现在想)
调试器将具有上述结果,对于那些String变量,originalBean将与cloneBean不同。
------------- 1-2周后------------------
不敢相信我错过了这个, Bean有这个,但没有使用它,也不是getter / setter。不知道为什么会被触发。
public void setFullAccountForDisplay(String _value) {
if (!Utilities.isEmpty(_value)) {
account = _value.substring(0, 2);
accountNumber = _value.substring(2, _value.length());
}
}
还发现我们的bean有一个clone()方法,将对此进行测试。