Ошибки "необходимо переопределить метод суперкласса" после импорта проекта в 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, он использует те же имена аргументов, которые у меня уже были, поэтому я действительно не знаю, где проблема, а затем он автоматически форматирует метод для меня.
это становится довольно боль, чтобы вручную воссоздать все мои переопределенные методы вручную. Если кто-нибудь может объяснить, почему это происходит или как это исправить .. Я был бы очень счастливый.
может быть, это связано с тем, как я форматирую методы, которые находятся внутри аргумента другого метода?
12 ответов:
Eclipse по умолчанию использует Java 1.5, и у вас есть классы, реализующие методы интерфейса (которые в Java 1.6 могут быть аннотированы с помощью
@Override
, но в Java 1.5 может применяться только к методам, переопределяющим метод суперкласса).перейдите в настройки project/IDE и установите уровень компилятора Java на 1.6, а также убедитесь, что вы выбрали JRE 1.6 для выполнения своей программы из Eclipse.
с Затмение "Галилео" вы переходите в пункт меню Eclipse - > Preferences, затем в диалоговом окне выберите Java и компилятор.
теперь он все еще может показывать уровень соответствия компилятора на 1.6, но вы все еще видите эту проблему. Так что теперь выберите ссылку"Настройка Конкретных Параметров Проекта... " и там вы увидите, что проект установлен на 1.5, теперь измените это на 1.6. Вам нужно будет сделать это для всех затронутых проектов.
Это византийское меню / диалог интерфейс типичен для плохого дизайна пользовательского интерфейса Eclipse.
в случае, если это произойдет с кем-то еще, кто пробовал как alphazero, так и метод пола и все еще не работал.
для меня eclipse каким-то образом "кэшировал" ошибки компиляции даже после выполнения проекта > Clean...
Мне пришлось снять флажок проект > построить автоматически, затем сделать проект > очистить, а затем построить снова.
кроме того, если вы сомневаетесь, попробуйте перезапустить Eclipse. Это может исправить много неудобных, необъяснимых ошибок.
чтобы решить эту проблему, перейдите к свойствам проекта - > компилятор Java - > выберите уровень соответствия компилятора 1.6 - > применить.
ответ Павла работал для меня частично. Тогда у меня все еще была одна ошибка. Итак, в дополнение к этому мне также пришлось перейти в свойства-> фасеты проекта и установить версию Java от 1.5 до 1.6.
может быть, это помогает.
ребята в моем случае ни одно из решений выше не работало.
Мне пришлось удалить файлы в рабочей области проекта:
- .проект
- .путь к классу
и папку:
- .настройки
затем я скопировал из аналогичного проекта, который работал раньше. Это удалось исправить мой сломанный проект.
конечно, не используйте этот метод перед попыткой предыдущего альтернативы!.
Если ничего из вышеперечисленного не помогает, убедитесь, что у вас есть правильный "среда исполнения" установлен, и не "альтернативный JRE".
можно найти в:
Проект - > Путь Сборки - > Библиотеки
выберите
JRE System Library
и нажмите кнопкуEdit...
.Если " альтернативный JRE ..."выбрано, измените его на подходящую "среду выполнения", например
JavaSE-1.8 (jre1.8.0_60)
. Не знаю почему, но это решит проблему.
Это моя вторая встреча с этой проблемой. первый раз по рекомендации alphazero это сработало. но во второй раз я установил 1.6 он не работает так же, как " кэш " эта ошибка после очистки и перестроения.
попробуйте отключить "построить автоматически", как сказал Rollin_s -> ошибка все еще здесь!
поэтому я удалил проблемный проект (уже установленный на 1.6) из Проводника пакетов и импортировал его снова -> он запускает перестройку и не ошибается время
надеюсь, что это поможет кому-то
перейдите в windows - > настройки - > Java - > компилятор - > выберите уровень соответствия компилятора 1.6 (какую версию вы хотите)-> применить-> ok. теперь его работа.
исправление должно переопределить ошибку метода суперкласса не сложно, вам просто нужно изменить исходную версию Java на 1.6, потому что из аннотации Java 1.6 @Override можно использовать вместе с методом интерфейса. Чтобы изменить исходную версию на 1.6 выполните следующие действия:
- выберите проект , щелкните правой кнопкой мыши , Свойства
- выберите компилятор Java и установите флажок "Включить конкретные параметры проекта"
- Теперь сделайте уровень соответствия компилятора 1.6
- применить изменения
в моем случае эта проблема возникла, когда я импортировал проект Maven в Eclipse. Чтобы решить эту проблему, я добавил следующее в
pom.xml
:<properties> ... <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
затем в контекстном меню проекта перейдите в раздел " Maven - > обновить проект ...- и нажмите кнопку ОК.
вот именно. Надеюсь, это поможет.