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

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

我将如何去禁用这个错误?

注意:由于项目需求,我需要为Java 1.5进行编译。

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

确保您的IDE项目设置为使用Java 6 JRE,并将“源代码兼容性”设置为1.6或更高。 打开窗口>首选项对话框,并浏览到Java>编译器。 在那里你可以设置“编译器符合级别”为1.6。

请记住,Eclipse可以覆盖特定项目的这些全局设置,因此也请检查这些设置。


更新:

Java 5下的错误不仅仅在于Eclipse; 直接从命令行使用javac会给你同样的错误。 这是无效的Java 5源代码。

但是,您可以为JDK 6的javac指定-target 1.5选项,它将从Java 6源代码生成Java 5版本类文件。

Project-> Properties-> java compiler->

启用项目特定设置-yes编译器符合性 – 1.6生成的类文件和源代码兼容性 – 1.5

检查项目是否有方面。 java版本可能会被重写。

你可以改变编译器设置来接受Java 6的语法,但生成Java 5的输出(我记得)。 如果运行时需要,可以将“生成的类文件兼容性”设置得稍微低一些。 更新 :我检查Eclipse,但它抱怨,如果我将源兼容性设置为1.6和类兼容性为1.5。 如果不允许使用1.6,我通常会手动注释源代码中的@Override注释(这对您的案例没有帮助)。

Update2:如果你只做手动构build,你可以编写一个小程序,将原始项目复制到一个新项目中,从java源文件中去除@Override注释,然后在Eclipse中打开Clean项目。

项目特定的设置可能被启用。 select你的项目Project > Properties > Java Compileruncheck Enable project specific settings或者更改Jdk 1.6及以上,不要忘记相应的JRE
如果它不起作用,请从eclipse中删除您的项目,删除.settings folders.project.classpath文件。 clean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your project clean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your project和日食。 它为我工作

您也可以尝试使用Retroweaver从Java6类创buildJava5版本。

使用Eclipsesearch并replace(删除)“@Override”的所有实例。 然后使用“清理”加回非接口覆盖。

脚步:

  1. select包含源文件的项目或文件夹。
  2. 转到“search>search…”(Ctrl-H),打开search对话框。
  3. 转到“文件search”选项卡。
  4. 在“文件名称模式”中的“包含文本”和“* .java”中input“@Override”。 点击“replace…”,然后点击“确定”,删除“@Override”的所有实例。
  5. 转到“窗口>首选项> Java>代码样式>清理”并创build一个新的configuration文件。
  6. 编辑configuration文件,并取消选中除“缺less代码>添加缺less的注释> @Override”之外的所有内容。 确保“接口方法的实现”没有被选中。
  7. select包含源文件的项目或文件夹。
  8. select“Source> Clean Up …”(Alt + Shift + s,然后是u),然后点击“Finish”来添加非接口覆盖。

我明白你的问题,把你的jdk从你的jdk改成1.5

通过configurationIDE项目设置为使用Java 6 JRE或更高版本,有时不会删除eclipse错误。 对我来说重启 Eclipe IDE有帮助。

即使在将编译器合规性设置从Windows标签更改为1.6或1.7后,然后优先,然后java,然后编译器和设置编译器的合规性,我仍然有这个问题。 这个想法是,我们需要去项目文件夹,右键单击Java,并将编译器合规性设置为1.6或更高。 这对我有效。