Суммирование вложенного свойства с использованием API Java StreamJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Суммирование вложенного свойства с использованием API Java Stream

Сообщение Anonymous »

У меня есть следующие POJO Java:

Код: Выделить всё

public class Order {
private List orderLines;
private String name;
// ... lots of other fields

// Getters & setters & ctors down here
}

public class OrderLine {
private String productId;
private Integer quantity;

// Getters & setters & ctors down here
}
Я пытаюсь найти «поточный» способ Java 8 для получения общего количества всех строк заказа в заказе. «Старый» способ получения этого значения выглядел бы так:

Код: Выделить всё

int totalQuantity = 0;
for (OrderLine ol : order.getOrderLines()) {
totalQuantity += ol.getQuantity();
}
Моя лучшая попытка:

Код: Выделить всё

Integer totalQuantity = order.getOrderLines().stream().filter(ol -> ol.getQuantity());
Я знаю, что это неправильно, поскольку он не выполняет итерацию по List и не суммирует количество каждой строки, а также не компилируется, поскольку filter(. ..) необходимо, чтобы выражение разрешалось в логическое значение, а не в int.

Любые идеи, где я пойдет не так?

Подробнее здесь: https://stackoverflow.com/questions/567 ... stream-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»