"Переопределить метод суперкласса" Ошибки после импорта проекта в 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
Ребята в моем случае ни одно из вышеперечисленных решений не работало.
Мне пришлось удалить файлы в рабочей области проекта:
И папка:
Затем я скопировал те из аналогичного проекта, который работал раньше. Это удалось исправить мой сломанный проект.
Конечно, не используйте этот метод, прежде чем пытаться использовать предыдущие альтернативы!
Ответ 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 и т.д.)