Código original:
public BigDecimal getConsumoMedio(TipoMaterial tipoMaterial) {
if (CollectionUtils.isNotEmpty(estoquesTipoMaterial)) {
for (EstoqueTipoMaterial estoqueTipoMaterial : estoquesTipoMaterial) {
if (estoqueTipoMaterial.getTipoMaterial().equals(tipoMaterial)) {
return estoqueTipoMaterial.getConsumoMedio();
}
}
}
return NumberUtil.ZERO;
}
Só consegui fazer quebrando em 2 linhas e testando com o isPresent()
. Teria como fazer numa única linha?
public BigDecimal getConsumoMedio(TipoMaterial tipoMaterial) {
if (CollectionUtils.isNotEmpty(estoquesTipoMaterial)) {
Optional<EstoqueTipoMaterial> optionalEstoqueTipoMaterial = estoquesTipoMaterial.stream()
.filter(etm -> etm.getTipoMaterial().equals(tipoMaterial)).findFirst();
return optionalEstoqueTipoMaterial.isPresent() ? optionalEstoqueTipoMaterial.get().getConsumoMedio()
: NumberUtil.ZERO;
}
return NumberUtil.ZERO;
}