У меня есть этот случай, мне нужно выполнить Подтвердить субмодуль только один раз после того, как одна транзакция считается успешной для списка транзакций.
поэтому внутри цикла мне нужно проверить, выполняет ли программа «Утвердить» или нет.
В настоящее время я думаю о 2 способах сделать это
Я использую значение isApproved для проверки, обновляя его собственное значение с помощью возвращаемого значения из метода executeApproveSubModule:
List<Transaction> transactionList = request.getTransactionList();
boolean isApproved = false;
for(Transaction transaction : transactionList) {
//transaction business logic, long code
transaction.setStatus("Success");
//approve transacion sub module
isApproved = performApproveSubModule(isApproved, transaction);
}
//method
private boolean performApproveSubModule(boolean isApproved, Transaction transaction) {
if(!isApproved) {
//approve business logic
// update isApproved value to true
isApproved = true;
}
return isApproved;
}
Я также использую значение isApproved для проверки, но я передаю его в качестве ссылки для обновления значения с помощью класса Wrapper:
AtomicBoolean isApproved = new AtomicBoolean();
for(Transaction transaction : transactionList) {
//transaction business logic, long code
transaction.setStatus("Success");
//approve transacion sub module
performApproveSubModule(isApproved, transaction);
}
//method
private void performApproveSubModule(AtomicBoolean isApproved, Transaction transaction) {
if(!isApproved.get()) {
//approve business logic
// update isApproved value to true
isApproved.set(true);
}
}
какую мне использовать?
я должен использовать другой правильный путь?