Boa noite.
Estava assistindo o video referente a Maps e também escrevendo o código junto com o professor Paulo. Tenho a mania de sempre implementar algo a mais, fazer algo diferente no código. Nesse caso eu estava tentando implementar a lambda conforme o código abaixo.
alunos.forEach(aluno -> {
if(Integer.valueOf(aluno.getNumeroMatricula()).equals(numero)) {
return aluno;
}
});
Porem eu estou recebendo a seguinte exception ao tentar executar( o código na verdade nem esta compilando, eu executei para ver o erro que ia dar em tempo de execução).
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method forEach(Consumer<? super Aluno>) in the type Iterable<Aluno> is not applicable for the arguments ((<no type> aluno) -> {})
Void methods cannot return a value
Detalhe, o erro ocorre após eu digitar "return aluno;" dentro do if, ai o código para de compilar. Se eu deixar apenas escrito "return;" o código compila.
Se fizer da forma como o professor codificou na aula, usando o enhanced for, também funciona.
public Aluno buscaMatriculado(int numero) {
for (Aluno aluno : alunos) {
if(Integer.valueOf(aluno.getNumeroMatricula()).equals(numero)) {
return aluno;
}
}
Alguém pode me ajudar por favor?
Desde já grato