Почему вы хотите получить Stream<Stream<POLine>> list
??У вас уже есть список POLine
из экземпляра poSearchResponseList
.
Итак, я думаю, что у вас есть List<SearchResponse>
с List<DeliveryDocumentLine>
, и из этого вы хотите получить List<POList>
,да?
Если в этом сценарии вы можете использовать метод Stream.flatMap()
.
Почему?
Ну, это потому, что этот метод может производить что-то вроде этого Stream<SearchResponse> -> Stream<POList>
Теперь, сначала вы извлекаете SearchResponse
с использованием .stream()
, затем вы выравниваете его с помощью Stream.flatMap()
, тогда здесь у вас будет объект SearchResponse
из этого объекта, вы можете извлечь данные из строк, как это:
List<POLine> list = poSearchResponseList
.stream()
.flatMap(response -> response.getDeliveryDocumentLines()
.stream()
.map(item -> POLine.builder()
.poLineNumber(item.getPurchaseReferenceLineNumber())
.quantity(item.getExpectedQty())
.vnpkQty(item.getVnpkQty())
.build()
)
)
.collect(Collectors.toList());
System.out.println(list);