Android

'Must Override a Superclass Method' Errors after importing a project into Eclipse

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

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

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

Переведено автоматически
Ответ 1

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

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

Ответ 2

С помощью Eclipse Galileo вы переходите в пункт меню Eclipse -> Настройки, затем в диалоговом окне выбираете Java и компилятор.

Теперь он по-прежнему может показывать уровень соответствия компилятору 1.6, но вы по-прежнему видите эту проблему. Итак, теперь выберите ссылку "Настройте параметры для конкретного проекта ...", и там вы увидите, что для проекта установлено значение 1.5, теперь измените его на 1.6. Вам нужно будет сделать это для всех затронутых проектов.

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

Ответ 3

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

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

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

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

Ответ 4

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

java android