91 votes

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

J'ai le problème mentionné dans le titre. On peut dire que ce fil fait double emploi avec un autre : Comment désactiver la validation des erreurs pour les annotations dans IntelliJ IDEA ?

Mais la solution proposée ne fonctionne pas. Ils disent que je dois prendre les mesures suivantes :

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

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

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

0voto

Sameer Sinha Points 111

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

Plutôt que de changer le paramètre de l'IDE, pour rendre le projet agnostique à l'IDE, j'ai mis à 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>

0voto

prime Points 1239

En JIdea 2020.1.2 et supérieur ,

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

enter image description here

NOTA:

Si vous obtenez l'erreur suivante après ce changement,

Error:java: Compilation failed: internal java compiler error

Vous devez également modifier la version du bytecode cible.

  1. Aller à Paramètres [ Ctrl + Alt + S ]
  2. Sélectionnez Compilateur Java
  3. Sélectionnez le module dans le tableau
  4. Modifiez la version du code d'octet pour qu'elle corresponde à ce que vous avez sélectionné à l'étape précédente pour le niveau de langue.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X