@Override não é permitido ao implementar o método de interface

87

Eu tenho o problema mencionado no título. Você poderia dizer que este tópico duplica outro: Como eu desativo a validação de erro para anotações no IntelliJ IDEA?

Mas a solução apresentada não funciona. Eles dizem que preciso realizar a seguinte ação:

Na Estrutura do Projeto | Diálogo do projeto, mude o nível de linguagem do projeto para 6.0 - @Override nas interfaces.

No entanto, o nível de linguagem do projeto é 6.0 no momento, mas ainda vejo o erro.

Vic, aqui está a janela e não há versão JVM abaixo do nível de idioma (infelizmente não posso postar imagens porque tenho 10 reputação)

Nikitin Mikhail
fonte
Não posso postar imagens, mas não há nenhuma opção em "Nível de linguagem do projeto", mas "saída do compilador do projeto" que não se parece com a versão JVM
Nikitin Mikhail

Respostas:

126

Se o seu projeto possui vários módulos, verifique também se cada módulo usa o nível de linguagem 6 ou superior, ou use o nível de linguagem do projeto (consulte Recursos Project Settings > Modules > xxx > Language level).

Pode ser necessário recarregar seu projeto depois de modificado.

Bastien Jansen
fonte
1
sim. Tenho apenas um módulo, mas teve a 5ª versão do idioma. Obrigado
Nikitin Mikhail
9
Apenas enfrentei o mesmo problema. Meu nível de linguagem do projeto já era 6.0, mas a anotação @Override ainda estava em destaque. Para corrigir isso, você pode abrir o arquivo * .iml e definir LANGUAGE_LEVEL = "JDK_1_6" e recarregar o projeto
Georgy Gobozov
7
Para qualquer outra pessoa que esteja usando a versão 2016.2.4 ou superior, o menu mudou, agora é Estrutura do projeto > Módulos> xxx> Nível de idioma
Wesley Smith
51

No seu módulo / projeto, clique com o botão direito para ver o menu de contexto:

insira a descrição da imagem aqui

Escolha Open Module Settingsou pressione F4. Ao definir janelas:

insira a descrição da imagem aqui
Defina o valor da Choose Language levelseção.


Você também deve verificar Project language leveldesta forma: pressione Ctrl+ Alt+ Shift+S

insira a descrição da imagem aqui

Do Nhu Vy
fonte
26

Uma solução mais simples - em linha

  1. Coloque o cursor na @Overridepalavra e mova o cursor no lado esquerdo até que o ícone de lâmpada vermelha apareça. Em seguida, clique nele.

    insira a descrição da imagem aqui

  2. Clique em Definir nível de idioma para 6 - Substituir nas interfaces

    insira a descrição da imagem aqui


O método acima é uma alternativa para a seguinte abordagem:

  1. Vá para Arquivo> Estrutura do Projeto ... ou pressione Ctrl+ Alt+ Shift+S

    insira a descrição da imagem aqui

  2. Vá para Configurações do projeto> Módulos> Fontes> Nível de idioma e escolha qualquer nível que seja 6 ou superior a 6.

    insira a descrição da imagem aqui

ROMANIA_engineer
fonte
15

Se você estiver usando o maven, adicione o plug-in do compilador do maven ao arquivo pom.xml do projeto.

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

Isso resolveu o problema para mim.

nuwan.chamara
fonte
3

Também existe um nível de idioma para cada módulo. Verifique as configurações do módulo na Estrutura do Projeto.

Peter Gromov
fonte
Na verdade, não vejo nenhum outro lugar onde possa ver o nível de linguagem do projeto, exceto a estrutura do projeto / projeto
Nikitin Mikhail
Estrutura do Projeto | Módulos | <seu_módulo> | Nível de idioma
Peter Gromov
0

Encontrei esse problema pela primeira vez ao usar um projeto Maven com vários módulos. Como outras respostas / IDE sugeriram, precisamos definir o nível de linguagem.

Em vez de alterar a configuração do IDE, para tornar o IDE do projeto agnóstico, atualizo o pom pai com as propriedades abaixo, o que resolveu o problema.

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
sss
fonte
0

Em JIdea 2020.1.2 e superior ,

  1. Vá para Estrutura do Projeto [ Ctrl+ Alt+ Shift+ S ]
  2. Selecione a subseção Módulos
  3. Selecione cada módulo
  4. Na seção de fontes, verifique o nível de idioma
  5. Altere o nível de idioma conforme necessário

insira a descrição da imagem aqui

NOTA:

Se você obtiver o erro abaixo após essa alteração,

Error:java: Compilation failed: internal java compiler error

Você também deve alterar a versão do bytecode de destino.

  1. Vá para Configurações [ Ctrl+ Alt+ S ]
  2. Selecione Java Compiler
  3. Selecione o módulo na tabela
  4. Altere a versão do código de byte para mapear o que você selecionou na etapa anterior para o nível de idioma

insira a descrição da imagem aqui

primo
fonte