Estou tentando usar um java.lang.function.Function
na minha base de código java 8, mas continuo recebendo o seguinte erro no Intellij.
Uso da API documentada como @since 1.6+ Esta inspeção encontra todos os usos de métodos que possuem a tag @since em sua documentação. Isso pode ser útil quando o desenvolvimento é executado na versão mais recente do SDK como a plataforma de destino para produção
Parece que tenho as configurações corretas de projeto e compilador
Configurações do projeto: (Arquivo -> Estrutura do projeto)
Project Settings -> Project -> Project SDK = Java 1.8
Project Settings -> Project -> Project Language Level = 8 - Lambdas, Type Annotations etc
Configurações do compilador: (Arquivo -> Configurações)
Build, Execution, Deployment -> Compiler -> Java Compiler -> Project Bytecode Version : 1.8
Build, Execution, Deployment -> Compiler -> Java Compiler -> Per module Bytecode Version -> Target Bytecode Version : 1.8
Qual é o problema?
fonte
Project default
nível de idioma (naSources
guia).Project Settings
é encontrado emFile -> Project Structure
Se você estiver usando o maven, adicione a linha abaixo no arquivo pom.xml de configuração e reimporte ou construa-o a partir do maven.
Caso contrário, selecione o compilador java e o nível de idioma abaixo do caminho.
Arquivo> Estrutura do projeto> Configurações do projeto> Módulos> nome do seu módulo> Fontes> Nível de idioma> escolha o que você precisa.
Altere o nível do idioma a partir daqui: -
fonte
Na verdade, se você estiver usando o Maven e as
pom.xml
propriedades do seu projeto estiverem configuradas corretamenteVocê pode reimportar os parâmetros do Maven para o
intellij-idea
projeto - clique com o botão direito do mouse na entrada raiz do projeto e depoisMaven -> Reimport
na parte inferior.fonte
Eu apenas o corrigi da seguinte maneira:
Clique com o botão direito do mouse no projeto -> Abrir Configurações do Módulo -> Módulos -> Fontes -> 8 ou superior
E depois
Se ainda encontrar o erro e usar o maven , você precisará adicionar a configuração de compilação no seu
pom.xml
:fonte
Arquivo> Configurações> Compilação, Execução, Implantação> Java Compiler
Altere a versão de bytecode de destino para 1.8 do módulo em que você está trabalhando.
Se você estiver usando o Maven
Adicione o plug-in do compilador ao pom.xml no nó do projeto de nível superior:
fonte
Se você estiver usando o Gradle, não se esqueça de verificar se o seguinte está definido como 1.8 e não 1.5 (por exemplo, por algum motivo bizarro no Intelij, o padrão é 1.5); portanto, não importa o que você faça no nível do projeto para definir o compilador nível de compatibilidade, essa configuração fará com que ela continue causando problemas com os recursos do Java 8 que ela não reconheceria:
fonte
Talvez sua configuração do repositório possua propriedades como Versão do compilador. examinar
settings.xml
arquivo.fonte
Há um outro lugar que pode estar causando esse problema, independentemente de você estar ou não usando o Maven ou o Gradle.
Em
Settings | Editor | Inspections | Java language level migration aids | Usages of API which isn't available at the configured language level
, o padrão (acredito) está definido comoRespecting to project language level settings
, mas pode ser definido comoHigher than:
, o que ignora as configurações do projeto.Isso significa que, se você seguir as instruções nas outras respostas e definir o nível de idioma do seu projeto como, digamos, 8, mas a inspeção estiver definida como
Higher than: 7
, o IDEA ainda será adequado.fonte