Я работаю в банковском учреждении, и мне нужно выполнять такие транзакции, как депозит, снятие средств, перевод и т. д. И когда мы рассматриваем поля с большими значениями, я увидел, что BigDecimal обычно используется с Java 8 в приложении Spring Boot.
Когда мне нужно сравнить, является ли это число (BigDecimal) большим или меньшим, чем другое, я узнал, что нам нужно использовать метод compareTo(). В моем примере мне нужно суммировать два значения и сравнить результат с третьим числом, как я делюсь в следующем примере, используя Java 8 и BigDecimal:
if ((request.getTransactionValue().add(BigDecimal.valueOf(totalTransactionValuePerDay))).compareTo(accountBank.getWithdrawLimitPerDay())
> 0) {
throw new UnprocessableEntityException("Withdraw limit per day has exceeded");
}
Но если подумать о чистом, поддерживаемом и понятном коде, может ли кто-нибудь поделиться лучшим подходом, например кратким и/или интеллектуальным решением?
Это проверка, чтобы проверить, достигает ли клиент лимита снятия в день в банке транзакций. Мне интересно, как работать с BigDecimal с использованием Java 8 или 11 без этого огромного условия if.
Другим подходом может быть использование подробного кода, но перед этим я надеюсь узнать или получить помощь, чтобы кодировать лучше.
Не стесняйтесь проверить мой полный код здесь.
if ((request.getTransactionValue() + totalTransactionValuePerDay) > accountBank.getWithdrawLimitPerDay()) { throw new UnprocessableEntityException("Withdraw limit per day has exceeded"); }
это немного лаконично. Мне просто интересно, можно ли быть более кратким из-за моего первого контакта с BigDecimal. Пожалуйста, не стесняйтесь комментировать это @ernest_k - person Alexandre Barbosa   schedule 25.01.2021