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

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

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


1117


источник


Ответы:


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

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


1375



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

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

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


301



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

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

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

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


74



To resolve this issue, Go to your Project properties -> Java compiler -> Select compiler compliance level to 1.6-> Apply.


38



The answer by Paul worked for me partially. I still had one error then. So, in addition to that, I also had to go to Properties-> Project Facets and there set the Java version from 1.5 to 1.6.

Maybe that helps.


18



Guys in my case none of the solutions above worked.

I had to delete the files within the Project workspace:

  • .project
  • .classpath

And the folder:

  • .settings

Then I copied the ones from a similar project that was working before. This managed to fix my broken project.

Of course do not use this method before trying the previous alternatives!.


11



This is my second time encounter this problem. first time according the alphazero's recommendation it worked. but in the second time I set to 1.6 it don't work it just like 'CACHE' this error after clean and rebuild.

Try to switch off 'Build Automatically' as Rollin_s said -> error still here!

So I removed the problem project (already set to 1.6) from Package Explorer and import it again -> it start a rebuild and no error this time

Hope this help someone


8



If nothing of the above helps, make sure you have a proper "Execution environment" selected, and not an "Alternate JRE".

To be found under:

Project -> Build Path -> Libraries

Select the JRE System Library and click Edit....

If "Alternate JRE ..." is selected, change it to a fitting "Execution Environment" like JavaSE-1.8 (jre1.8.0_60). No idea why, but this will solve it.


8



Go to windows-> preferences -> Java -> compiler -> Select compiler compliance level to 1.6(which version you want)-> Apply-> ok. now its work.


7



Fixing must override a super class method error is not difficult, You just need to change Java source version to 1.6 because from Java 1.6 @Override annotation can be used along with interface method. In order to change source version to 1.6 follow below steps :

  1. Select Project , Right click , Properties
  2. Select Java Compiler and check the check box "Enable project specific settings"
  3. Now make Compiler compliance level to 1.6
  4. Apply changes

7



In my case this problem happened when I imported a Maven project into Eclipse. To solve this, I added the following in pom.xml:

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Then in the context menu of the project, go to "Maven -> Update Project ...", and press OK.

That's it. Hope this helps.


4



In my case, none the solutions above works. I have to checkout my source code to another folder. From eclipse select File > Switch workSpaces > Other... and then import code to the new workspaces. it works after that.


3