Expressões Lambda não funcionam no Java 11

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