クラス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インスタンスを作成することです。これにより、2番目のクラスでの変更が、クラス1のフローに影響を与えることはありません。bulkCustomerVO.getCustomerVO()checkDuplicateCustomergetDuplicateCustomerDetails
私にできることは、すべてのフィールドbulkCustomerVO.getCustomerVO()を新しいものにコピーすることですCustomerVOが、VOは巨大であり、私はそれをしたくありません。それは私のクラスでは不要なコードになります。
では、どうすればこのシナリオに取り組むことができますか?
編集-私はクローンcozを使用できませんこれはクローン可能を実装するために私のVOを変更するオーバーヘッドにつながります