@Override n'est pas autorisé lors de l'implémentation de la méthode d'interface

87

J'ai le problème mentionné dans le titre. Vous pourriez dire que ce fil en duplique un autre: Comment désactiver la validation des erreurs pour les annotations dans IntelliJ IDEA?

Mais la solution donnée là-bas ne fonctionne pas. Ils disent que je dois prendre les mesures suivantes:

Dans la structure du projet | Dans la boîte de dialogue Projet, changez le niveau de langue du projet en 6.0 - @Override dans les interfaces

Cependant, le niveau de langue du projet est pour le moment 6.0, mais je vois toujours l'erreur.

Vic, voici la fenêtre et il n'y a pas de version JVM juste sous le niveau de langue (malheureusement je ne peux pas publier d'images car j'ai 10 réputation)

Nikitin Mikhail
la source
Je ne peux pas publier d'images mais il n'y a aucune option sous "Project Language Level" mais "project compiler output" qui ne ressemble pas à la version JVM
Nikitin Mikhail

Réponses:

126

Si votre projet comporte plusieurs modules, vérifiez également que chaque module utilise le niveau de langue 6 ou supérieur, ou utilisez le niveau de langue du projet (voir Project Settings > Modules > xxx > Language level).

Vous devrez peut-être recharger votre projet une fois qu'il est modifié.

Bastien Jansen
la source
1
Oui. Je n'ai qu'un seul module, mais il avait la 5ème version linguistique. Merci
Nikitin Mikhail
9
Juste face au même problème. Le niveau de langue de mon projet était déjà 6.0 mais l'annotation @Override était toujours en surbrillance. Pour résoudre ce problème, vous pouvez ouvrir le fichier * .iml et définir LANGUAGE_LEVEL = "JDK_1_6" et recharger le projet
Georgy Gobozov
7
Pour quiconque trouve cela qui utilise la version 2016.2.4 ou supérieure, le menu a changé, c'est maintenant Structure du projet > Modules> xxx> Niveau de langue
Wesley Smith
51

Dans votre module / projet, faites un clic droit pour voir le menu contextuel:

entrez la description de l'image ici

Choisissez Open Module Settingsou appuyez sur F4. Dans les fenêtres de réglage: définissez la

entrez la description de l'image ici
valeur de la Choose Language levelsection.


Vous devez également vérifier Project language levelde cette manière: appuyez sur Ctrl+ Alt+ Shift+S

entrez la description de l'image ici

Do Nhu Vy
la source
26

Une solution plus simple - en ligne

  1. Placez le curseur sur le @Overridemot et déplacez le curseur sur le côté gauche jusqu'à ce que l'icône d'ampoule rouge apparaisse. Cliquez ensuite dessus.

    entrez la description de l'image ici

  2. Cliquez sur Définir le niveau de langue sur 6 - Remplacer dans les interfaces

    entrez la description de l'image ici


La méthode ci-dessus est une alternative à l'approche suivante:

  1. Allez dans Fichier> Structure du projet ... ou appuyez sur Ctrl+ Alt+ Shift+S

    entrez la description de l'image ici

  2. Accédez à Paramètres du projet> Modules> Sources> Niveau de langue et choisissez un niveau de 6 ou supérieur à 6.

    entrez la description de l'image ici

ROMANIA_engineer
la source
15

Si vous utilisez maven, ajoutez le plugin du compilateur maven au fichier pom.xml du projet.

<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>

Cela a résolu le problème pour moi.

nuwan.chamara
la source
3

Il existe également un niveau de langue pour chaque module. Veuillez vérifier les paramètres de votre module dans la structure du projet.

Peter Gromov
la source
En fait, je ne vois aucun autre endroit où je peux voir le niveau de langue du projet, mais projet-structure / projet
Nikitin Mikhail
Structure du projet | Modules | <votre_module> | Niveau de langue
Peter Gromov
0

J'ai rencontré ce problème pour la première fois en utilisant un projet maven multi module. Comme d'autres réponses / IDE l'ont suggéré, nous devons définir le niveau de langue.

Plutôt que de modifier le paramètre de l'EDI, pour rendre le projet IDE agnostique, je mets à jour le pom parent avec les propriétés ci-dessous, ce qui a résolu le problème.

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

Dans JIdea 2020.1.2 et au-dessus ,

  1. Aller à la structure du projet [ Ctrl+ Alt+ Shift+S ]
  2. Sélectionnez la sous-section Modules
  3. Sélectionnez chaque module
  4. Sous la section sources, vérifiez le niveau de langue
  5. Modifiez le niveau de langue au besoin

entrez la description de l'image ici

REMARQUE:

Si vous obtenez une erreur ci-dessous après ce changement,

Error:java: Compilation failed: internal java compiler error

Vous devez également modifier la version de bytecode cible.

  1. Accédez aux paramètres [ Ctrl+ Alt+ S ]
  2. Sélectionnez le compilateur Java
  3. Sélectionnez le module dans le tableau
  4. Modifiez la version d'octet-code pour mapper ce que vous avez sélectionné à l'étape précédente pour le niveau de langue

entrez la description de l'image ici

premier
la source