Каждый раз, когда мне приходится повторно импортировать мои проекты в 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 автоматически воссоздает метод, он использует те же имена аргументов, которые у меня уже были, поэтому я не знаю, где проблема, за исключением того, что он автоматически форматирует метод для меня.
Это становится большой болью, когда приходится вручную воссоздавать ВСЕ мои переопределенные методы вручную. Если кто-нибудь может объяснить, почему это происходит или как это исправить. Я была бы очень рада.
Может быть, это связано с тем, как я форматирую методы, которые находятся внутри аргумента другого метода?
Eclipse по умолчанию установлен на Java 1.5, и у вас есть классы, реализующие методы интерфейса (которые в Java 1.6 могут быть аннотированы @Override
, но в Java 1.5 могут применяться только к методам, переопределяющим метод суперкласса).
Перейдите к настройкам вашего проекта / IDE и установите уровень компилятора Java равным 1.6, а также убедитесь, что вы выбрали JRE 1.6 для запуска вашей программы из Eclipse.
С Eclipse Galileo вы идете в пункт меню Eclipse -> Preferences, затем выбираете Java и Compiler в диалоговом окне.
Теперь он все еще может показывать уровень соответствия компилятора на уровне 1.6, но вы все еще видите эту проблему. Итак, теперь выберите ссылку « Настроить параметры проекта ... », и там вы увидите, что для проекта установлено значение 1,5, теперь измените его на 1,6. Вам нужно будет сделать это для всех затронутых проектов.
Этот византийский интерфейс меню / диалога типичен для плохого дизайна пользовательского интерфейса Eclipse.
В случае, если это случится с кем-то еще, кто попробовал и alphazero и метод Пола и все еще не работал.
Для меня Eclipse каким-то образом «кэшировал» ошибки компиляции даже после выполнения Project> Clean ...
Мне пришлось снять флажок «Проект»> «Автоматически построить», затем выполнить «Проект»> «Очистить» и затем выполнить сборку заново.
Также, если есть сомнения, попробуйте перезапустить Eclipse . Это может исправить множество неловких, необъяснимых ошибок.
Чтобы решить эту проблему, перейдите в Свойства вашего проекта -> Компилятор Java -> Выберите уровень соответствия компилятора до 1.6-> Применить.
Ребята, в моем случае ни одно из решений выше не сработало.
Мне пришлось удалить файлы в рабочей области проекта:
- .project
- .classpath
И папка:
- .settings
Затем я скопировал те из аналогичного проекта, который работал раньше. Это удалось исправить мой сломанный проект.
Конечно, не используйте этот метод, прежде чем пытаться использовать предыдущие альтернативы!
Это мой второй раз сталкиваюсь с этой проблемой. в первый раз по рекомендации альфазеро это сработало. но во второй раз я установил на 1.6, он не работает, как «CACHE», эта ошибка после очистки и перестройки.
Попробуйте отключить «Автоматически строить», как сказал Rollin_s -> ошибка все еще здесь!
Поэтому я удалил проблемный проект (уже установлен на 1.6) из Package Explorer и импортировал его снова -> он начал перестройку и на этот раз без ошибок
Надеюсь, это поможет кому-то
В моем случае ни одно из приведенных выше решений не работает. Я должен оформить исходный код в другой папке. В eclipse выберите «Файл»> «Переключить рабочие пространства»> «Прочее ...», а затем импортируйте код в новые рабочие области. это работает после этого.
Ответ Пола сработал для меня частично. У меня все еще была одна ошибка тогда. Итак, в дополнение к этому, мне также пришлось перейти в Properties-> Project Facets и там установить версию Java от 1.5 до 1.6.
Может быть, это помогает.
Исправление должно переопределить ошибку метода суперкласса. Это не сложно, вам просто нужно изменить исходную версию Java на 1.6, потому что из Java 1.6 аннотацию @Override можно использовать вместе с методом интерфейса. Чтобы изменить исходную версию на 1.6, выполните следующие действия:
- Выберите Проект, щелкните правой кнопкой мыши, Свойства
- Выберите Java Compiler и установите флажок «Включить конкретные настройки проекта»
- Теперь установите уровень соответствия компилятора до 1,6
- Применять изменения
Если ничего из вышеперечисленного не помогает, убедитесь, что выбрана правильная « среда выполнения », а не «альтернативная JRE».
Быть найденным под:
Проект -> Путь сборки -> Библиотеки
Выберите JRE System Library
и нажмите Edit...
.
Если выбран «Альтернативный JRE ...», измените его на подходящую «Среду исполнения», например JavaSE-1.8 (jre1.8.0_60)
. Не знаю почему, но это решит это.
В моем случае эта проблема возникла, когда я импортировал проект Maven в Eclipse. Чтобы решить эту проблему, я добавил следующее pom.xml
:
<properties>
...
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Затем в контекстном меню проекта перейдите в «Maven -> Обновить проект ...» и нажмите ОК.
Вот и все. Надеюсь это поможет.
Это происходит, когда ваш проект 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 и т. Д.)