6
respostas

problemas com forEach

O forEach para a coleção não está funcionando javaColecoes.getAlunos().forEach(aluno -> { System.out.println(aluno); });

O erro dado é o seguinte:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: aluno cannot be resolved to a variable Syntax error on tokens, delete these tokens println cannot be resolved or is not a field Syntax error on token(s), misplaced construct(s) Syntax error, insert ";" to complete Statement

at br.com.alura.TestaCursoComAluno.main(TestaCursoComAluno.java:23)

Alguma solução?

6 respostas

Oi Leonard, o seu eclipse está configurado para usar o Java 8? Outra coisa, qual é o tipo da variável javaColecoes? Pq se ela realmente for uma coleção, provavelmente não tem o método getAlunos. Como vc pode ver, o erro é de compilação, é alguma coisa na escrita do código.

Agora um detalhe importante: vai inserir código na dúvida, tenta usar o botão inserir código e escreve seu código entre as aspinhas.

Boa noite, Leonardo Como diz no erro de compilação, você inseriu o <b>;</b> onde não precisa: javaColecoes.getAlunos().forEach(aluno -> { System.out.println(aluno)<b>;</b> });

Remova o <b>;</b> que irá funcionar perfeitamente.

Desculpe a forma como ficou escrito, não entendi realmente como usar a formatação aqui. Se ficar confuso aí em cima, só precisa remover o ; após (aluno) System.out.println(aluno); });

Leonardo, minha resposta está incorreta. Por favor, desconsidere.

Leonardo,

Verificando o erro a principio não é um erro de versão do java pois o erro seria diferente algo como "lambda expressions are allowed only at source level 1.8", você poderia compartilhar sua classe main e as classes Aluno e Curso, assim possibilita identificarmos a causa pois somente com o erro citado não tem como dar uma resposta concreta.

A parte do Código que você postou está correta, verifique se não existe algum ';' sobrando no seu método main(). caso o erro persista verifique se não deixou de colocar o ';' antes deste comando, ou seja, no System.out.println("Todos os Alunos Matriculados no Curso: "); javaColecoes.getAlunos().forEach(aluno ->{ System.out.println(aluno); });