"Переопределить метод суперкласса" Ошибки после импорта проекта в Eclipse

В любое время, когда мне нужно повторно импортировать мои проекты в Eclipse (если я переустановил Eclipse или изменил расположение проектов), почти все мои переопределенные методы не отформатированы правильно, в результате чего ошибка The method must override a superclass method.

Возможно, стоит упомянуть об этом в проектах Android. По какой-то причине значения аргументов метода не всегда заполняются, поэтому мне приходится вручную самостоятельно их заполнять. Например:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

будет изначально заселен следующим образом:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

Нечетным является то, что если я удалю свой код и Eclipse автоматически воссоздает метод, он использует те же самые имена аргументов, которые у меня уже были, поэтому я действительно не знаю, где проблема, кроме того, это автоматическое форматирование метод для меня.

Это становится настоящей проблемой, когда вручную вручную восстанавливать ВСЕ мои переопределенные методы. Если кто-нибудь может объяснить, почему это происходит или как это исправить... Я был бы очень счастлив.

Возможно, это связано с тем, как я форматирую методы, находящиеся внутри аргумента другого метода?

Ответ 1

Eclipse по умолчанию использует Java 1.5, и у вас есть классы, реализующие методы интерфейса (которые в Java 1.6 могут быть аннотированы с помощью @Override, но в Java 1.5 могут применяться только к методам, переопределяющим метод суперкласса).

Перейдите в настройки проекта /IDE и установите для уровня компилятора Java значение 1.6, а также убедитесь, что вы выбрали JRE 1.6 для выполнения вашей программы из Eclipse.

Ответ 2

С помощью Eclipse Galileo вы перейдете в пункт меню Eclipse → Preferences, затем в диалоговом окне выберите Java и Compiler.

Теперь он все еще может показывать уровень соответствия компилятора на уровне 1.6, но вы все еще видите эту проблему. Теперь выберите ссылку "Настроить параметры проекта...", и там вы увидите, что проект установлен в 1.5, теперь измените это на 1.6. Вам нужно будет сделать это для всех затронутых проектов.

Этот византийский меню/диалоговый интерфейс типичен для дизайна UI с плохим дизайном Eclipse.

Ответ 3

В случае, если это случается с любым другим, кто пробовал как метод alphazero, так и Paul, и все еще не работал.

Для меня eclipse каким-то образом "кэширует" ошибки компиляции даже после выполнения Project > Clean...

Мне нужно было снять флажок Project > Build Automatically, затем выполнить проект > Очистить, а затем снова создать.

Кроме того, при возникновении сомнений попробуйте перезапустить Eclipse. Это может исправить множество неудобных, необъяснимых ошибок.

Ответ 4

Чтобы устранить эту проблему, перейдите в свойства проекта → Компилятор Java → Выберите уровень соответствия компилятора 1.6- > Применить.

Ответ 5

Ответ Павла частично работал у меня. Тогда у меня была одна ошибка. Таким образом, в дополнение к этому, мне также пришлось перейти к Properties- > Project Facets и установить версию Java с 1.5 до 1.6.

Может быть, это помогает.

Ответ 6

Ребята в моем случае ни одно из вышеперечисленных решений не работало.

Мне пришлось удалить файлы в рабочей области проекта:

  • .project
  • .classpath

И папка:

  • .settings

Затем я скопировал те из аналогичного проекта, который работал раньше. Это удалось исправить мой сломанный проект.

Конечно, не используйте этот метод, прежде чем пытаться использовать предыдущие альтернативы!

Ответ 7

Если ничего из вышеизложенного не помогает, убедитесь, что у вас есть соответствующая " среда выполнения", а не "альтернативная JRE".

Можно найти в разделе:

Проект → Путь сборки → Библиотеки

Выберите JRE System Library и нажмите Edit....

Если выбрано "Alternate JRE...", измените его на подходящую "среду выполнения", например JavaSE-1.8 (jre1.8.0_60). Не знаю, почему, но это решит его.

Ответ 8

Это второй раз, когда мы сталкиваемся с этой проблемой. первый раз в соответствии с рекомендацией alphazero. но во второй раз, когда я установил 1.6, он не работает так, как "CACHE" эта ошибка после очистки и восстановления.

Попытайтесь отключить "Build Automatically", как еще раз, когда Rollin_s said → ошибка!

Итак, я удалил проблемный проект (уже установленный в 1.6) из Package Explorer и снова импортировал его → он запустил восстановление и на этот раз не ошибся

Надеюсь, что это поможет кому-то

Ответ 9

Исправление должно переопределить ошибку метода суперкласса, это не сложно, вам просто нужно изменить исходную версию Java на 1.6, поскольку из Java 1.6 @Override может использоваться аннотация, а также метод интерфейса. Чтобы изменить исходную версию на 1.6, выполните следующие шаги:

  • Выберите проект, щелкните правой кнопкой мыши, Свойства
  • Выберите Java Compiler и установите флажок "Включить специальные настройки проекта"
  • Теперь сделайте уровень соответствия компилятора 1.6.
  • Применить изменения

Ответ 10

Перейдите в windows- > preferences → Java → compiler → Выберите уровень соответствия компилятора 1.6 (какая версия вы хотите) → Apply- > ok. теперь его работа.

Ответ 11

В моем случае эта проблема возникла, когда я импортировал проект Maven в Eclipse. Чтобы решить эту проблему, я добавил следующее в pom.xml:

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

Затем в контекстном меню проекта перейдите в "Maven → Update Project..." и нажмите OK.

Что это. Надеюсь, это поможет.

Ответ 12

В моем случае ни один из вышеперечисленных решений не работает. Мне нужно проверить исходный код на другую папку. Из eclipse выберите File > Switch workSpaces > Other... и затем импортируйте код в новые рабочие области. он работает после этого.

Ответ 13

Это происходит, когда ваш проект maven использует другой уровень соответствия компилятору, а Eclipse IDE использует другой уровень соответствия компилятора. Чтобы это исправить, нам нужно изменить уровень соответствия компилятора проекта Maven на уровень использования IDE.

1) Чтобы увидеть уровень соответствия Java Compiler использует в Eclipse IDE

*) Окно → Настройки → Компилятор → Уровень соответствия компилятора: 1,8 (или 1,7, 1,6 и т.д.)

2) Изменить уровень соответствия Java Compiler проекта Maven

*) Перейдите в "Проект" → "Свойства" → Выберите "Компилятор Java" → Изменить уровень соответствия компилятора: 1,8 (или 1,7, 1,6 и т.д.)