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

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

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

В структуре проекта | Диалог проекта, измените уровень языка проекта на 6.0 - @Override в интерфейсах.

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

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

5 ответов

Решение

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

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

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

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

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

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


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

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

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

  1. Положите каретку на @Override и переместите курсор слева, пока не появится красная лампочка. Затем нажмите на него.

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


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

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

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

Если вы используете 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>

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

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

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

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

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

В 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. Измените версию байт-кода, чтобы сопоставить то, что вы выбрали на предыдущем шаге для уровня языка

Другие вопросы по тегам