@Override не допускается при реализации метода интерфейса

87

У меня проблема, упомянутая в заголовке. Можно сказать, что этот поток дублирует другой: как отключить проверку ошибок для аннотаций в IntelliJ IDEA?

Но данное там решение не работает. Они говорят, что мне нужно предпринять следующие действия:

В структуре проекта | В диалоговом окне Project измените Project language Level на 6.0 - @Override в интерфейсах.

Тем не менее, на данный момент уровень языка проекта 6.0, но я все еще вижу ошибку.

Вик, вот окно, а прямо на уровне языка нет версии JVM (к сожалению, я не могу публиковать изображения, потому что у меня 10 репутации)

Никитин Михаил
источник
Я не могу публиковать изображения, но в разделе «Уровень языка проекта» нет никаких опций, кроме «вывода компилятора проекта», который не похож на версию JVM
Никитин Михаил

Ответы:

126

Если в вашем проекте несколько модулей, также убедитесь, что каждый модуль использует уровень языка 6 или выше, или используйте уровень языка проекта (см Project Settings > Modules > xxx > Language level. Раздел "Ресурсы" ).

Возможно, вам придется перезагрузить проект после его изменения.

Бастьен Янсен
источник
1
да. У меня только один модуль, но с пятой версией языка. Спасибо
Никитин Михаил
9
Просто столкнулся с той же проблемой. Уровень языка моего проекта уже был 6.0, но аннотация @Override все еще была выделена. Чтобы исправить это, вы можете открыть файл * .iml и установить LANGUAGE_LEVEL = "JDK_1_6" и перезагрузить проект
Георгий Гобозов
7
Для всех, кто обнаружит, что это использует версию 2016.2.4 или выше, меню изменилось, теперь это Структура проекта > Модули> xxx> Уровень языка
Уэсли Смит
51

В вашем модуле / проекте щелкните правой кнопкой мыши, чтобы увидеть контекстное меню:

введите описание изображения здесь

Выберите Open Module Settingsили нажмите F4. В окнах настроек:

введите описание изображения здесь
Задайте значение для Choose Language levelраздела.


Вы также должны проверить Project language levelэто так: нажмите Ctrl+ Alt+ Shift+S

введите описание изображения здесь

До Нху Ви
источник
26

Более простое решение - встроенный

  1. Поместите курсор в @Overrideслово и перемещайте курсор с левой стороны, пока не появится значок красной лампочки. Затем щелкните по нему.

    введите описание изображения здесь

  2. Нажмите Установить уровень языка на 6 - Переопределить в интерфейсах

    введите описание изображения здесь


Приведенный выше метод является альтернативой следующему подходу:

  1. Перейдите в Файл> Структура проекта ... или нажмите Ctrl+ Alt+ Shift+S

    введите описание изображения здесь

  2. Перейдите в Настройки проекта> Модули> Источники> Уровень языка и выберите любой уровень, равный 6 или выше 6.

    введите описание изображения здесь

РУМЫНИЯ_engineer
источник
15

Если вы используете maven, добавьте плагин компилятора maven в файл проекта pom.xml.

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

Это решило проблему для меня.

nuwan.chamara
источник
3

Также для каждого модуля есть свой языковой уровень. Пожалуйста, проверьте настройки вашего модуля в структуре проекта.

Петр Громов
источник
Я вообще-то не вижу другого места, где я могу увидеть уровень языка проекта, кроме структуры проекта / проекта
Никитин Михаил
Структура проекта | Модули | <your_module> | Уровень языка
Петр Громов
0

Я впервые столкнулся с этой проблемой при использовании многомодульного проекта maven. Как предлагали другие ответы / IDE, нам нужно установить уровень языка.

Вместо того, чтобы изменять настройку IDE, чтобы сделать проект IDE независимым, я обновляю родительский pom с указанными ниже свойствами, что решило проблему.

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
sss
источник
0

В JIdea 2020.1.2 и выше ,

  1. Перейти к структуре проекта [ Ctrl+ Alt+ Shift+ S ]
  2. Выберите подраздел " Модули"
  3. Выберите каждый модуль
  4. В разделе источников проверьте уровень языка
  5. Изменение уровня языка в соответствии с требованиями

введите описание изображения здесь

НОТА:

Если после этого изменения вы получите ошибку ниже,

Error:java: Compilation failed: internal java compiler error

Вы также должны изменить целевую версию байт-кода.

  1. Зайдите в настройки [ Ctrl+ Alt+ S ]
  2. Выберите компилятор Java
  3. Выберите модуль в таблице
  4. Измените версию байт-кода, чтобы сопоставить то, что вы выбрали на предыдущем шаге для уровня языка

введите описание изображения здесь

премьер
источник