java - при - «Переопределить метод суперкласса» Ошибки после импорта проекта в Eclipse




переопределение методов при наследовании java (8)

Каждый раз, когда мне приходится повторно импортировать мои проекты в 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 выберите File> Switch workSpaces> Other ... и затем импортируйте код в новые рабочие области. он работает после этого.


В случае, если это случается с любым другим, кто пробовал как альфасеро, так и метод Павла, и все еще не работал.

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

Мне нужно было снять флажок Project> Build Automatically, затем выполнить Project> Clean, а затем снова создать.

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


Если ничего из вышеизложенного не помогает, убедитесь, что вы выбрали правильную « среду выполнения », а не «альтернативную JRE».

Вы можете найти:

Project -> Путь сборки -> Библиотеки

Выберите JRE System Library и нажмите « Edit... .

Если выбрано «Alternate JRE ...», измените его на подходящую «среду выполнения», такую ​​как JavaSE-1.8 (jre1.8.0_60) . Не знаю, почему, но это решит это.


Ответ Павла частично помог мне. Тогда у меня была одна ошибка. Таким образом, в дополнение к этому, мне также пришлось перейти к Properties-> Project Facets и установить версию Java с 1.5 до 1.6.

Может быть, это помогает.


Перейдите в windows-> preferences -> Java -> compiler -> Выберите уровень соответствия компилятора 1.6 (какая версия вы хотите) -> Apply-> ok. теперь его работа.


С Eclipse Galileo вы переходите в пункт меню Eclipse -> Preferences, затем выберите Java и Compiler в диалоговом окне.

Теперь он все еще может показывать уровень соответствия компилятора на уровне 1.6, но вы все еще видите эту проблему. Теперь выберите ссылку « Настроить параметры проекта ... », и там вы увидите, что проект установлен в 1.5, теперь измените это на 1.6. Вам нужно будет сделать это для всех затронутых проектов.

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


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







superclass