«Необходимо переопределить метод суперкласса» Ошибки после импорта проекта в Eclipse

Каждый раз, когда мне приходится повторно импортировать мои проекты в Eclipse (если я переустановил Eclipse или изменил расположение проектов), почти все мои переопределенные методы не отформатированы правильно, вызывая ошибку:

Метод должен переопределить метод суперкласса

Стоит отметить, что по каким-то причинам это касается проектов 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 автоматически воссоздает метод, он использует те же имена аргументов, которые у меня уже были, поэтому я не знаю, где проблема, за исключением того, что он автоматически форматирует метод для меня.

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

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

5.11.2009 03:17:53
Пожалуйста, проверьте этот пункт, он объясняет использование переопределения. Я считаю, что эта практика очень важна для всего, не только для этой ситуации, в частности. stackoverflow.com/questions/94361/…
oagostinho 9.08.2012 10:17:16
12 ОТВЕТОВ
РЕШЕНИЕ

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

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

1431
6.09.2017 11:44:38
Мой проект был установлен на 1.6, поэтому я выбрал звезды и установил его на 1.5, перестроил, а затем снова на 1.6. Чудесным образом это решило мою проблему. Спасибо, что указал мне правильное направление!
Michael Krauklis 9.02.2011 20:43:14
имея ту же самую проблему ... попробовал предложение, данное в этом ответе, но все еще не успешный. :( :(
aditya_gaur 25.08.2011 12:22:30
@MichaelKrauklis Мне 1.6 и у меня эта проблема. Я установил на 1,5 и очистил его и установил обратно на 1,6 и очистил его снова. Все еще не решено. Любые идеи?
Pacerier 13.02.2012 22:42:06
Та же проблема здесь, в моем случае, я не установил JDK 1.6, только последний 1.7, который, очевидно, не работает с Android. Установка более старой версии 1.6 и последующее выполнение этих инструкций должно работать :)
NoBugs 22.07.2012 02:31:54
Следует упомянуть (как в комментариях к другим ответам), что чистая сборка с последующим перезапуском часто требуется.
gsingh2011 23.05.2013 03:45:39

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

Теперь он все еще может показывать уровень соответствия компилятора на уровне 1.6, но вы все еще видите эту проблему. Итак, теперь выберите ссылку « Настроить параметры проекта ... », и там вы увидите, что для проекта установлено значение 1,5, теперь измените его на 1,6. Вам нужно будет сделать это для всех затронутых проектов.

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

308
8.09.2010 03:48:49

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

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

Мне пришлось снять флажок «Проект»> «Автоматически построить», затем выполнить «Проект»> «Очистить» и затем выполнить сборку заново.

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

78
22.02.2013 20:37:02
Я сделал не только это, но и снял флажок «Начать сборку автоматически» в диалоговом окне «Очистить». Только тогда у меня это сработало.
Wilerson 27.06.2012 02:02:45
Мне также пришлось перезапустить затмение, даже после удаления ошибок.
Dave Cameron 2.01.2013 05:16:22

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

42
21.07.2012 15:47:48

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

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

  • .project
  • .classpath

И папка:

  • .settings

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

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

14
28.12.2011 20:31:27

Это мой второй раз сталкиваюсь с этой проблемой. в первый раз по рекомендации альфазеро это сработало. но во второй раз я установил на 1.6, он не работает, как «CACHE», эта ошибка после очистки и перестройки.

Попробуйте отключить «Автоматически строить», как сказал Rollin_s -> ошибка все еще здесь!

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

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

11
14.12.2012 06:20:19

В моем случае ни одно из приведенных выше решений не работает. Я должен оформить исходный код в другой папке. В eclipse выберите «Файл»> «Переключить рабочие пространства»> «Прочее ...», а затем импортируйте код в новые рабочие области. это работает после этого.

6
16.06.2013 04:32:40

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

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

22
5.02.2014 16:25:08

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

  1. Выберите Проект, щелкните правой кнопкой мыши, Свойства
  2. Выберите Java Compiler и установите флажок «Включить конкретные настройки проекта»
  3. Теперь установите уровень соответствия компилятора до 1,6
  4. Применять изменения
10
21.04.2015 06:23:58

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

Быть найденным под:

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

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

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

14
4.09.2015 21:44:13
Я выбрал «Среду выполнения», затем нажал «ОК», и ошибка исчезла. Затем я вернулся к этому же диалоговому окну и выбрал «JRE (...) рабочего пространства по умолчанию», которое было моим предыдущим выбором, когда я получал ошибку от Eclipse, затем нажал «ОК», и ошибка не произошла?!? Это должна быть ошибка Eclipse UI или что-то в этом роде (я нахожусь на Eclipse Neon 4.6.2)
mljrg 22.02.2017 18:11:39

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

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

Затем в контекстном меню проекта перейдите в «Maven -> Обновить проект ...» и нажмите ОК.

Вот и все. Надеюсь это поможет.

10
22.02.2017 18:30:40
Спасибо, я думаю, это переопределяет родительскую конфигурацию POM или что-то еще. (Я рекламирую проблему с другой стороны, никаких проблем с затмением, но компилятор
Asoub 28.04.2017 13:05:37

Это происходит, когда ваш проект 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 и т. Д.)

2
21.12.2018 18:03:54