В любое время, когда мне нужно повторно импортировать мои проекты в 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 автоматически воссоздает метод, он использует те же самые имена аргументов, которые у меня уже были, поэтому я действительно не знаю, где проблема, кроме того, это автоматическое форматирование метод для меня.
Это становится настоящей проблемой, когда вручную вручную восстанавливать ВСЕ мои переопределенные методы. Если кто-нибудь может объяснить, почему это происходит или как это исправить... Я был бы очень счастлив.
Возможно, это связано с тем, как я форматирую методы, находящиеся внутри аргумента другого метода?
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. Вам нужно будет сделать это для всех затронутых проектов.
Этот византийский меню/диалоговый интерфейс типичен для дизайна UI с плохим дизайном Eclipse.
В случае, если это случается с любым другим, кто пробовал как метод alphazero, так и Paul, и все еще не работал.
Для меня eclipse каким-то образом "кэширует" ошибки компиляции даже после выполнения Project > Clean...
Мне нужно было снять флажок Project > Build Automatically, затем выполнить проект > Очистить, а затем снова создать.
Кроме того, при возникновении сомнений попробуйте перезапустить Eclipse. Это может исправить множество неудобных, необъяснимых ошибок.
Чтобы устранить эту проблему, перейдите в свойства проекта → Компилятор Java → Выберите уровень соответствия компилятора 1.6- > Применить.
Ответ Павла частично работал у меня. Тогда у меня была одна ошибка. Таким образом, в дополнение к этому, мне также пришлось перейти к Properties- > Project Facets и установить версию Java с 1.5 до 1.6.
Может быть, это помогает.
Ребята в моем случае ни одно из вышеперечисленных решений не работало.
Мне пришлось удалить файлы в рабочей области проекта:
И папка:
Затем я скопировал те из аналогичного проекта, который работал раньше. Это удалось исправить мой сломанный проект.
Конечно, не используйте этот метод, прежде чем пытаться использовать предыдущие альтернативы!
Если ничего из вышеизложенного не помогает, убедитесь, что у вас есть соответствующая " среда выполнения", а не "альтернативная JRE".
Можно найти в разделе:
Проект → Путь сборки → Библиотеки
Выберите JRE System Library
и нажмите Edit...
.
Если выбрано "Alternate JRE...", измените его на подходящую "среду выполнения", например JavaSE-1.8 (jre1.8.0_60)
. Не знаю, почему, но это решит его.
Это второй раз, когда мы сталкиваемся с этой проблемой. первый раз в соответствии с рекомендацией alphazero. но во второй раз, когда я установил 1.6, он не работает так, как "CACHE" эта ошибка после очистки и восстановления.
Попытайтесь отключить "Build Automatically", как еще раз, когда Rollin_s said → ошибка!
Итак, я удалил проблемный проект (уже установленный в 1.6) из Package Explorer и снова импортировал его → он запустил восстановление и на этот раз не ошибся
Надеюсь, что это поможет кому-то
Исправление должно переопределить ошибку метода суперкласса, это не сложно, вам просто нужно изменить исходную версию Java на 1.6, поскольку из Java 1.6 @Override может использоваться аннотация, а также метод интерфейса. Чтобы изменить исходную версию на 1.6, выполните следующие шаги:
Перейдите в windows- > preferences → Java → compiler → Выберите уровень соответствия компилятора 1.6 (какая версия вы хотите) → Apply- > ok. теперь его работа.
В моем случае эта проблема возникла, когда я импортировал проект 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.
Что это. Надеюсь, это поможет.
В моем случае ни один из вышеперечисленных решений не работает. Мне нужно проверить исходный код на другую папку. Из eclipse выберите File > Switch workSpaces > Other... и затем импортируйте код в новые рабочие области. он работает после этого.
Это происходит, когда ваш проект 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 и т.д.)