isCredit
是常见的布尔值。请注意,我们在借方和贷方上设置相同的值(但交叉)取决于布尔值
.setDebetSide(new DebetSideDto()
.setPayerINN(isCredit ? record.getInnContractor() : record.getClientInn())
.setPayerName(isCredit ? record.getNameContractor() : record.getClientName())
.setCreditSide(new CreditSideDto()
.setReceiverINN(isCredit ? record.getClientInn() : record.getInnContractor())
.setReceiverName(isCredit ? record.getClientName() : record.getNameContractor())
尝试避免双重调用,因此在
if
构造中设置其他变量,然后使用这些变量调用两个函数:
var debitSideDto = new DebetSideDto();
var creditSideDto = new CreditSideDto();
if (isCredit) {
debitSideDto.setPayerINN(
record.getInnContractor()),
record.setPlayerName(parecord.getNameContractor());
...
} else {
...
}
.setDebetSide(debitSideDto);
这里的一个批评是
debitSideDto
可能被设计为包含无效状态;需要调用 setter 才能达到有效状态。最好在构建时分配所需的值。在这种情况下,需要在 if
语句中调用构造函数。在 if
之前不必为变量分配任何值;只要编译器分配了一个值就可以 - 它甚至可以被声明为final
。