Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Ex. 4 - Desconto por venda casada - forEach

Por que não é possível utilizar o forEach no exemplo abaixo?

        private boolean existe(String nomeDoItem, Orcamento orcamento) {
            for (Item item : orcamento.getItens()) {
                if(item.getNome().equals(nomeDoItem)) return true;
            }
            return false;
        }

Tentei da seguinte forma:

        orcamento.getItens().forEach(item -> {
            if(item.getNome().equals(nomeDoItem)) return true;
        });
4 respostas

Faltou o getItens().stream().forEach

Tinha me esquecido do stream. Mas mesmo depois de incluir, o problema persistiu.

O Eclipse só apresenta o erro quando escrevo "return true". Dei uma olhada nos métodos e o forEach retorna "void". Deve ser isso, não é?

solução!

O forEach não tem retorno, nesse caso uma opção seria o seguinte: return orcamento.getItens().stream().anyMatch(item -> item.getNome().equals(nomeDoItem);

Entendi. Obrigado Bruno e Alberto.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software