Add warning for missing @Override annotation for interface implementation in Eclipse
Asked Answered
K

4

11

In Eclipse 3.4.1 using JDK1.6.0_10 how can I activate a warning on a missing @Override annotation on a method that implements an interface method?

In the Preferences window this option:

Java > Compiler > Errors / Warnings > Annotations > Missing '@Override' annotation

works fine for missing annotations on methods that override a superclass method, but it does nothing for interface methods.

Kailyard answered 22/10, 2008 at 9:1 Comment(2)
Java 5 and Java 6 have different expectations about @Override annotations on interface implementations. I don't recall how this impacts Eclipse, but I know that it does.Regress
I should have mentioned this. Added the version of Java (6) to the question.Kailyard
K
10

It is not possible in Eclipse 3.4.1. It is a known issue. See this bug report page for more information.

Kailyard answered 22/10, 2008 at 15:33 Comment(0)
S
2

Belay what I said in the other thread. Apparently it's not a compiler option, but a Java compatibility version issue: if your compatibility version is 5, you won't be able to annotate interface implementation methods. If your compatibility version is 6, then you will be able to.

However I don't think there's a way of actually forcing Eclipse to generate an error if you do not annotate each implemented method. From this page:

Missing '@Override' annotation: When enabled, the compiler will issue an error or a warning whenever it encounters a method overriding another implemented method, and the '@Override' annotation is missing.

Starrstarred answered 22/10, 2008 at 9:34 Comment(2)
I use java 6 (edited the question to make this clear. Should have done that before.)Kailyard
do you know if it can be done nowadays eclipse 4.4.1?Loomis
S
1

The compatibility setting to 1.6 instead of 1.5 worked for me on: Eclipse Java EE IDE for Web Developers.

Build id: 20100218-1602

Steere answered 22/10, 2010 at 19:15 Comment(0)
R
0

Maybe I'm missing something but interface methods are already required to be implemented by implementation classes.

The compiler will generate an error if the interface is not completely implemented.

Rinna answered 22/10, 2008 at 9:11 Comment(2)
Yes, but you still want this. See #213114Kailyard
Ah yes, thanks for the pointer. Must have missed that since I'm still at Java 1.5 on Mac OSX :-)Rinna

© 2022 - 2024 — McMap. All rights reserved.