Possuo as duas classes:
class Estoque {
private double quantidadeAtual;
protected double debitaEstoque(double quantidade){
this.quantidadeAtual -= quantidade;
if (quantidadeAtual < 0){
double quantidadeFaltando = this.quantidadeAtual;
this.quantidadeAtual = 0.0;
return quantidadeFaltando; // retorna o valor que ficou faltando
}
return 0; // retorna 0 indicando que a quantidade foi toda consumida
}
}
class GerenciadorEstoque {
private List<Estoque> estoques;
}
public debitaEstoque(double quantidade){
estoques.stream()
.forEach(e -> {
quantidade = e.debitaEstoque(quantidade);
//Erro de compilação
});
}
Estou ciente que não posso reatribuir quantidade, foi apenas para exemplificar. Existe outra forma de varrer a lista e ir decrementando a quantidade utilizando a API de coleções do JAVA 8?