为什么Eclipse会在接口方法上抱怨@Override?

问题

我有一个现有的项目,使用@Override方法覆盖接口方法,而不是超类方法。我无法在代码中改变这一点,但我希望Eclpse停止抱怨注释,因为我仍然可以使用Maven构建。

我该怎么做才能禁用此错误?
注意:由于项目要求,我需要编译Java 1.5。


#1 热门回答(259 赞)

在实现接口声明的方法的方法上使用@Override注释仅从Java 6开始有效。这是Java 5中的错误。

确保你的IDE项目设置为使用Java 6 JRE,并且"源兼容性"设置为1.6或更高。打开Window> Preferences对话框,然后浏览到Java> Compiler。在那里,你可以将"编译器合规性级别"设置为1.6。

请记住,Eclipse可以覆盖特定项目的这些全局设置,因此请检查这些设置。
更新:
Java 5下的错误不仅仅是Eclipse;直接从命令行使用javac会给你同样的错误。它不是有效的Java 5源代码。

但是,你可以为JDK 6'sjavac指定-target 1.5选项,这将从Java 6源代码生成Java 5版本类文件。


#2 热门回答(35 赞)

Project-> Properties-> java compiler->

启用项目特定设置 - 是编译器合规性 - 1.6生成的类文件和源兼容性 - 1.5


#3 热门回答(10 赞)

检查项目是否有方面。可以在那里覆盖java版本。