BigDecimal getInterest(List<Investment> investments) {
BigDecimal interest = BigDecimal.ZERO;
for (Investment i: investments) {
i.getTransactions().stream()
.map(Transaction::getAmount)
.forEach(interest::add);
}
return interest;
}
Проблема этого метода в том, что он всегда возвращает ноль. Похоже, .forEach()
не использует свой аргумент. Однако, если я напишу это так, как показано ниже, все работает нормально. Кто-нибудь понял, почему первый метод не работает?
BigDecimal getInterest(List<Investment> investments) {
BigDecimal interest = BigDecimal.ZERO;
for (Investment i: investments) {
interestPaid = interest.add(i.getTransactions().stream()
.map(Transaction::getAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add));
}
return interest;
}
BigDecimal
, вот в чем проблема. - person fabian   schedule 07.09.2016