Я пытаюсь преобразовать код, написанный в расширенном формате для каждого l oop, в потоки в java. Вот мой традиционный код
List<OrderDetail> orderDetails = new ArrayList<>();
if (arInvoiceOrderResponseBody != null) {
if (arInvoiceOrderResponseBody.getOrders() != null &&
arInvoiceOrderResponseBody.getOrders().size() > 0) {
for (OrderDetail orderDetail : arInvoiceOrderResponseBody.getOrders()) {
if (orderDetail != null) {
if (orderDetail.getStatusHistory() != null &&
orderDetail.getStatusHistory().size() > 0) {
for (StatusHistory statusHistory : orderDetail.getStatusHistory()) {
if (statusHistory != null) {
if (statusHistory.getStatusCode() != null) {
if (statusHistory.getStatusCode().equals("POD")) {
orderDetail.setStatusDateTime(statusHistory.getStatus_date_time());
}
}
}
}
}
}
orderDetails.add(orderDetail);
}
arInvoiceOrderResponseBody.setOrders(orderDetails);
}
Может ли кто-нибудь помочь мне воспроизвести ту же функциональность через потоки. Любая помощь была бы очень полезна
Это то, что я пытаюсь
arInvoiceOrderResponseBody.getOrders().stream() .flatMap(order ->
order.getStatusHistory().stream())
.filter(statusHistory ->statusHistory.getStatusCode().equals("POD"))
//Here if condition is true then i need to do this.I need to set one
//of the property of main order object to one of the property of status
//history object
//order.setStatusDateTime(statusHistory.getStatus_date_time());