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 以实现可克隆