137

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

我将如何禁用此错误?

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

4

10 回答 10

271

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

确保您的 IDE 项目设置为使用 Java 6 JRE,并且“源兼容性”设置为 1.6 或更高版本:

  1. 打开窗口 > 首选项对话框
  2. 浏览到 Java > 编译器。
  3. 在那里,将“编译器合规级别”设置为 1.6。

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


更新:

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

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

于 2009-06-12T17:35:08.420 回答
41

执行以下操作:

项目 -> 属性 -> java 编译器 ->

  • 启用项目特定设置 - “是”
  • 编译器合规性 - 1.6
  • 生成的类文件和源代码兼容性 - 1.5
于 2010-07-20T08:04:28.980 回答
12

还要检查项目是否有方面。java 版本可能会在那里被覆盖。

于 2011-03-08T08:54:13.363 回答
9

可以启用项目特定设置。选择你的项目,Project > Properties > Java Compiler或者改变上面的不要忘记对应。 如果它不起作用,请从 eclipse 中删除您的项目,删除, ,文件。和日食。它对我有用uncheckEnable project specific settingsJdk 1.6JRE
.settings folders.project.classpathclean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your project

于 2014-07-19T10:04:32.690 回答
7

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

更新 2: 如果您只进行手动构建,您可以编写一个小程序,将原始项目复制到一个新项目中,从 java 源代码中去除 @Override 注释,然后在 Eclipse 中点击 Clean project。

于 2009-06-12T17:37:10.210 回答
1

您还可以尝试使用 Retroweaver 从 Java6 类创建 Java5 版本。

于 2009-06-12T20:20:52.780 回答
1

使用 Eclipse 搜索和替换(删除)“@Override”的所有实例。然后使用“清理”添加回非接口覆盖。

脚步:

  1. 选择包含源文件的项目或文件夹。
  2. 转到“搜索 > 搜索...” (Ctrl-H) 以打开“搜索”对话框。
  3. 转到“文件搜索”选项卡。
  4. 在“包含文本”中输入“@Override”,在“文件名模式”中输入“*.java”。单击“替换...”,然后单击“确定”,以删除“@Override”的所有实例。
  5. 转到“窗口 > 首选项 > Java > 代码样式 > 清理”并创建一个新配置文件。
  6. 编辑配置文件,并取消选中除“缺少代码 > 添加缺少的注释 > @Override”之外的所有内容。确保未选中“接口方法的实现”。
  7. 选择包含源文件的项目或文件夹。
  8. 选择“Source > Clean Up...”(Alt+Shift+s,然后选择 u),然后选择“Finish”以添加回非接口覆盖。
于 2012-08-08T01:08:19.417 回答
0

我了解您的问题,将您的 jdk 从您的 jdk 更改为大于 1.5

于 2016-06-23T11:43:16.147 回答
0

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

于 2016-11-28T09:34:45.717 回答
0

即使从 windows 选项卡将编译器合规性设置更改为 1.6 或 1.7,然后是首选项,然后是 java,然后是编译器并设置编译器合规性,我仍然遇到这个问题。我们的想法是,我们需要进入项目文件夹,右键单击 Java 并将编译器合规性设置为 1.6 或更高版本。这对我有用。

于 2017-06-07T05:20:11.907 回答