1306

Anytime I have to re-import my projects into Eclipse (if I reinstalled Eclipse, or changed the location of the projects), almost all of my overridden methods are not formatted correctly, causing the error:

The method must override a superclass method

It may be noteworthy to mention this is with Android projects for whatever reason, the method argument values are not always populated, so I have to manually populate them myself. For instance:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
 //These arguments have their correct names
 public void onCreateContextMenu(ContextMenu menu, View v, 
 ContextMenuInfo menuInfo) { 
 }
});

will be initially populated like this:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
 //This methods arguments were not automatically provided 
 public void onCreateContextMenu(ContextMenu arg1, View arg2,
 ContextMenuInfo arg3) {
 }
});

The odd thing is, if I remove my code, and have Eclipse automatically recreate the method, it uses the same argument names I already had, so I don't really know where the problem is, other then it auto-formatting the method for me.

This becomes quite a pain having to manually recreate ALL my overridden methods by hand. If anyone can explain why this happens or how to fix it. I would be very happy.

Maybe it is due to the way I am formatting the methods, which are inside an argument of another method?

Arsen Khachaturyan
8,4104 gold badges46 silver badges46 bronze badges
asked Nov 5, 2009 at 3:17
1
  • 1
    Please check this item, it explains the use of override. I believe this practice is very important for everything not only for this situation in particularly. stackoverflow.com/questions/94361/… Commented Aug 9, 2012 at 10:17

13 Answers 13

1453

Eclipse is defaulting to Java 1.5 and you have classes implementing interface methods (which in Java 1.6 can be annotated with @Override, but in Java 1.5 can only be applied to methods overriding a superclass method).

Go to your project/IDE preferences and set the Java compiler level to 1.6 and also make sure you select JRE 1.6 to execute your program from Eclipse.

Lii
12.2k9 gold badges69 silver badges92 bronze badges
answered Nov 5, 2009 at 3:33
Sign up to request clarification or add additional context in comments.

11 Comments

My project was set to 1.6, so I shot for the stars and set it to 1.5, rebuilt, then back to 1.6. Miraculously this resolved my issue. Thanks for pointing me in the right direction!
having the same issue...tried the suggestion given in this answer but still not successful. :( :(
@MichaelKrauklis I'm 1.6 and I'm having this issue. I've set to 1.5 and cleaned it and set back to 1.6 and cleaned it again. Still not resolved. Any ideas?
Same problem here, in my case, I had not installed JDK 1.6, only the latest 1.7, which apparently doesn't work with Android. Installing the older 1.6 and then following these instructions, should work :)
It should be mentioned (like in the comments to the other answers) a clean build followed by a restart is often required.
|
307

With Eclipse Galileo you go to Eclipse -> Preferences menu item, then select Java and Compiler in the dialog.

Now it still may show compiler compliance level at 1.6, yet you still see this problem. So now select the link "Configure Project Specific Settings..." and in there you'll see the project is set to 1.5, now change this to 1.6. You'll need to do this for all affected projects.

This byzantine menu / dialog interface is typical of Eclipse's poor UI design.

answered Sep 8, 2010 at 3:48

Comments

80

In case this happens to anyone else who tried both alphazero and Paul's method and still didn't work.

For me, eclipse somehow 'cached' the compile errors even after doing a Project> Clean...

I had to uncheck Project> Build Automatically, then do a Project> Clean, and then build again.

Also, when in doubt, try restarting Eclipse. This can fix a lot of awkward, unexplainable errors.

Eagle
2,05619 silver badges25 bronze badges
answered Jan 26, 2011 at 17:22

2 Comments

I did not only that, but unchecked "Start a build automatically" on the Clean dialog. Only then it worked for me.
I had to restart eclipse as well, even after deleting the errors.
41

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

Sathyajith Bhat
22k22 gold badges101 silver badges140 bronze badges
answered Dec 26, 2011 at 9:38

Comments

23

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.

answered Feb 5, 2014 at 16:25

Comments

15

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.

answered Sep 4, 2015 at 21:44

1 Comment

I selected an "Execution Environment" then pressed OK and the error was gone. Then I came back to this same dialog, and selected "Workspace default JRE (...)", which was my previous selection when I was getting the error from Eclipse, then pressed OK, and the error did not happened ?!? This must be an Eclipse UI bug or something like that (I am on Eclipse Neon 4.6.2)
14

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!.

answered Dec 28, 2011 at 20:31

Comments

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

answered Dec 14, 2012 at 6:20

Comments

11

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.

answered Feb 22, 2017 at 18:30

1 Comment

Thanks, I guess this overrides parent pom configuration or something. (I ad the problem the other way around, no problem from eclipse, but maven's compiler threw me "must override etc.")
10

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
answered Apr 21, 2015 at 6:23

Comments

6

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.

answered Jun 16, 2013 at 4:32

Comments

2

This happens when your maven project uses different Compiler Compliance level and Eclipse IDE uses different Compiler Compliance level. In order to fix this we need to change the Compiler Compliance level of Maven project to the level IDE uses.

1) To See Java Compiler Compliance level uses in Eclipse IDE

*) Window -> Preferences -> Compiler -> Compiler Compliance level : 1.8 (or 1.7, 1.6 ,, ect)

2) To Change Java Compiler Compliance level of Maven project

*) Go to "Project" -> "Properties" -> Select "Java Compiler" -> Change the Compiler Compliance level : 1.8 (or 1.7, 1.6 ,, ect)

answered Dec 21, 2018 at 18:03

Comments

0

It's 2020 -

Project>Right Click>Java Compiler>Compiler Compliance Level> Change this to 1.8 [or latest level]

enter image description here

answered Aug 29, 2020 at 14:14

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.