Как сложить List BigDecimal и добавить результат в одну строку

Сюда добавляю элементы List<BigDecimal> sumSecond = new ArrayList<>(); Здесь вызываем работника employeeList.get(i), у которого возвращаем заработную плату getSalary(), а тут прибавляем её к sumSecond, а затем необходимо сохранить это число в наш лист.

Проблема в том, что прибавлять BigDecimal к BigDecimal нужно через .add(), добавлять элементы в List тоже нужно через .add . В связи с чем вот эта строка не работает полностью
sumSecond.add(sumSecond.add(employeeList.get(i).getSalary())); Как мне ещё производить это действие, если хочу в одну строку.


Ответы (1 шт):

Автор решения: Aziz Umarov

Добавлять все равно придется руками так как результат работы List.add это boolean.

Но есть выход по типу такого

BigDecimalList.java

package test;

import java.math.BigDecimal;
import java.util.ArrayList;

public class BigDecimalList extends ArrayList<BigDecimal> {

  public BigDecimalList addItem(BigDecimal item) {
    this.add(item);
    return this;
  }
}

App.java

package test;

import java.io.IOException;
import java.math.*;
import java.util.Optional;

public class App {

  public static void main(String[] args) throws IOException {

    Optional<BigDecimal> sum =
      new BigDecimalList()
        .addItem(BigDecimal.valueOf(1321654.21))
        .addItem(BigDecimal.valueOf(334.21))
        .addItem(BigDecimal.valueOf(12134.21))
        .addItem(BigDecimal.valueOf(5656.21))
        .stream().reduce((a, b) -> a.add(b));

   System.out.println(sum.isPresent() ? sum.get().doubleValue() : 0);
  }
}
→ Ссылка