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?
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.
1 curtida
Dei uma olhada aqui no projeto, está pegando o jdk 11, mas o Java Version consta como 1.7
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
Boa! Falando em autômato finito, dou aula de formais. Da uma olhada aqui depois: https://github.com/davidbuzatto/JustAnotherAutomatonSimulator
1 curtida