Giriş
Java 9 ile geliyor. Açıklaması şöyle.
returns a sequential Stream containing only that value, otherwise returns an empty Stream.
Örnek
Şöyle yaparız. Eğer orderId nesnesi null ise stream de boş olacağı için geri kalen kodlar çalışmaz. 0 döner
public BigDecimal getOrderPrice(Long orderId) {
return Optional.ofNullable(orderId) //Optinal<Long>
.stream() //Stream<Long>
.map(orderRepository::findByOrderId) //Stream<List<OrderLine>>
.flatMap(Collection::stream) //Stream<OrderLine>
.map(OrderLine::getPrice) //Stream<BigDecimal>
.reduce(BigDecimal.ZERO, BigDecimal::add); //BigDecimal
}
Örnek
Şöyle yaparız.ResponseEntry entry = Optional.ofNullable(serviceResponse.getEntryList())
.stream() // Stream<List<ResponseEntry>>
.flatMap(List::stream) // Stream<ResponseEntry>
.filter(e -> "expectedValue".equals(e.getValue())) // filter here
.findFirst() // Optional<ResponseEntry>
.orElse(null); // or else null
Hiç yorum yok:
Yorum Gönder