Boa noite galera, tenho uma dúvida sobre o escopo de variável no foreach, o código abaixo não compila, pois não aceita a variável soma como sendo uma variável local, o código só compila se eu colocar a vai;aval soma como atributo da classe, porque isso acontece?
//classe simples
class Produto{
private int id;
public int getID(){
return id;
}
}
class Cesto{
List<Produto> produtos = new ArrayList<Produto>();
public int getQuantidadeProduto(Produto produto){
int soma = 0;
produtos.forEach(p->{
if(p.getID() == produto.getID())
soma++; //erro aqui
});
return soma;
}
}