为什么 Eclipse 在接口方法上抱怨 @Override?
我有一个现有项目在覆盖 interface 方法而不是超类方法的方法上使用 @Override
.我无法在代码中更改它,但我希望 Eclpse 停止抱怨注释,因为我仍然可以使用 Maven 构建.
I have an existing project that uses @Override
on methods that override interface methods, rather than superclass methods. I cannot alter this in code, but I would like Eclpse to stop complaining about the annotation, as I can still build with Maven.
我将如何禁用此错误?
注意:由于项目需要,我需要为Java 1.5编译.
推荐答案
在实现接口声明的方法的方法上使用 @Override
注释仅从 Java 6 开始有效.这是 Java 5 中的错误.
Using the @Override
annotation on methods that implement those declared by an interface is only valid from Java 6 onward. It's an error in Java 5.
确保您的 IDE 项目设置为使用 Java 6 JRE,并且源兼容性"设置为 1.6 或更高版本:
Make sure that your IDE projects are setup to use a Java 6 JRE, and that the "source compatibility" is set to 1.6 or greater:
- 打开窗口 > 首选项对话框
- 浏览到 Java > 编译器.
- 在那里,将编译器合规级别"设置为 1.6.
请记住,Eclipse 可以覆盖特定项目的这些全局设置,因此也请检查这些设置.
Remember that Eclipse can override these global settings for a specific project, so check those too.
更新:
Java 5 下的错误不仅仅是 Eclipse;直接从命令行使用 javac
会给你同样的错误.它不是有效的 Java 5 源代码.
The error under Java 5 isn't just with Eclipse; using javac
directly from the command line will give you the same error. It is not valid Java 5 source code.
但是,您可以为 JDK 6 的 javac
指定 -target 1.5
选项,这将从 Java 6 源代码生成 Java 5 版本的类文件.
However, you can specify the -target 1.5
option to JDK 6's javac
, which will produce a Java 5 version class file from the Java 6 source code.
相关文章