Expressões Lambda não funcionam no Java 11

4 respostas Resolvido
java
B

Boa tarde, estou tentando usar expressões Lambda no Java com o seguinte código:
conteudoJunto.chars().distinct().forEach(c -> sb.append((char) c));
Porém não está funcionando. O Visual Studio está retornando isso:

Lambda expressions are allowed only at source level 1.8 or above

Colocando java --version no meu prompt de comando, descobri que a versão do meu java é:

java 11.0.8 2020-07-14 LTS
Java™ SE Runtime Environment 18.9 (build 11.0.8+10-LTS)
Java HotSpot™ 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode)

As expressões Lambda não deveriam estar funcionando nessa versão? O que preciso fazer para funcionar?

4 Respostas

D
Solucao aceita

Sua IDE deve estar usando uma versão mais antiga do JDK ou seu projeto está configurado para que o nível do código fonte seja compatível com alguma versão anterior à 8.

B


Dei uma olhada aqui no projeto, está pegando o jdk 11, mas o Java Version consta como 1.7

B

As seguintes linhas do Maven estavam assim:
<maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target>
alterei para
<maven.compiler.source>1.11</maven.compiler.source> <maven.compiler.target>1.11</maven.compiler.target>

E agora está compilando no java 11

D

Boa! Falando em autômato finito, dou aula de formais. Da uma olhada aqui depois: https://github.com/davidbuzatto/JustAnotherAutomatonSimulator

Criado 8 de janeiro de 2021
Ultima resposta 8 de jan. de 2021
Respostas 4
Participantes 2