1级
private void checkDuplicateCustomer(BulkCustomerVO bulkCustomerVO) {
PagedDuplicateCustomerVO duplicateCustomerVO = new PagedDuplicateCustomerVO();
duplicateCustomerVO.setCustomer(bulkCustomerVO.getCustomerVO());
duplicateCustomerVO = getCustomerBO().getDuplicateCustomerDetails(duplicateCustomerVO);
if (!MyUtils.isNull(duplicateCustomerVO)) {
if (duplicateCustomerVO.isValid()) {
// some operation
bulkCustomerVO.setErrorDetals(...........)
}
}
}
2 级
public PagedDuplicateCustomerVO getDuplicateCustomerDetails(PagedDuplicateCustomerVO pagedDuplicateCustomer) {
PagedDuplicateCustomerVO pagedDuplicateCustomerVO = pagedDuplicateCustomer;
// some operation that changes customerVO reference in pagedDuplicateCustomer
}
}
在上述场景中,BulkCustomerVO
有CustomerVO
实例。它被设置为PagedDuplicateCustomerVO
并作为参数传递给getDuplicateCustomerDetails()
它正在更改的方法。这些变化会影响我的方法流程checkDuplicateCustomer
。
我想要做的是创建一个单独的customerVO
实例bulkCustomerVO.getCustomerVO()
,checkDuplicateCustomer
其中特定getDuplicateCustomerDetails
于第二类的任何更改都不会影响我在第一类的流程。
我能做什么将所有字段从复制bulkCustomerVO.getCustomerVO()
到 new CustomerVO
,但是 VO 很大,我不想这样做。这将是我班上不需要的代码。
那么,我该如何处理这种情况?
编辑-我不能使用克隆因为这将导致改变我的 VO 以实现可克隆