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

Dúvida sobre o método existeUsuario

Olá, tudo bom? É o seguinte: o professor Nico ao implementar o método existeUsuario na classe Banco fez o seguinte código

for (Usuario usuario : usuarios) { if(usuario.ehIgual(login, senha)) return usuario; } return null;

Eu como estou tentando aplicar o stream pra fixar em quase tudo relacionado a lista fiz o seguinte:

Usuario usuario = Banco.usuarios.stream().filter(user->user.ehIgual(login, senha)).findFirst().get(); if(usuario!=null) {return usuario;} return null;

Mas quando eu fui testar e inseri dados incorretos ele deu um erro do tipo 500 e uma exception NoSuchElementException. Pelo que eu entendi era algo relacionado ao get(). Quando coloquei um try-catch ele funcionou normalmente de novo.

Minhas dúvidas são: Porque isso ocorreu? É certo aplicar o stream em todos os casos envolvendo coleções?

2 respostas
solução!

Fala Jamil, tudo bem?

O findFirst() simplesmente retorna um Optional que possui um método get(), que você precisa usar caso queira obter o valor. Porém, o erro NoSuchElementException provavelmente ocorreu por conta do filter ter retornado um Optional vazio que, ao chamar o método get() de um Optional vazio ocorre esse erro NoSuchElementException .

Olá Jamil!

Conseguiu resolver sua dúvida?