我有一个现有项目,它使用@Override
覆盖接口方法的方法,而不是超类方法。我无法在代码中更改它,但我希望 Eclpse 停止抱怨注释,因为我仍然可以使用 Maven 构建。
我将如何禁用此错误?
注意:由于项目要求,我需要为 Java 1.5 编译。
我有一个现有项目,它使用@Override
覆盖接口方法的方法,而不是超类方法。我无法在代码中更改它,但我希望 Eclpse 停止抱怨注释,因为我仍然可以使用 Maven 构建。
我将如何禁用此错误?
注意:由于项目要求,我需要为 Java 1.5 编译。
在实现接口声明的方法上使用@Override
注解仅从 Java 6 开始有效。这是 Java 5 中的错误。
确保您的 IDE 项目设置为使用 Java 6 JRE,并且“源兼容性”设置为 1.6 或更高版本:
请记住,Eclipse 可以覆盖特定项目的这些全局设置,因此也要检查这些设置。
更新:
Java 5 下的错误不仅仅是 Eclipse;javac
直接从命令行使用会给你同样的错误。它不是有效的 Java 5 源代码。
但是,您可以指定-target 1.5
JDK 6 的选项javac
,这将从 Java 6 源代码生成 Java 5 版本的类文件。
执行以下操作:
项目 -> 属性 -> java 编译器 ->
还要检查项目是否有方面。java 版本可能会在那里被覆盖。
可以启用项目特定设置。选择你的项目,Project > Properties > Java Compiler
或者改变上面的不要忘记对应。
如果它不起作用,请从 eclipse 中删除您的项目,删除, ,文件。和日食。它对我有用uncheck
Enable project specific settings
Jdk 1.6
JRE
.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
您可以更改编译器设置以接受 Java 6 语法但生成 Java 5 输出(我记得)。如果您的运行时需要,将“生成的类文件兼容性”设置得更低一些。 更新:我检查了 Eclipse,但如果我将源兼容性设置为 1.6 并将类兼容性设置为 1.5,它会抱怨。如果不允许使用 1.6,我通常会手动注释掉源中有问题的 @Override 注释(这对您的情况没有帮助)。
更新 2: 如果您只进行手动构建,您可以编写一个小程序,将原始项目复制到一个新项目中,从 java 源代码中去除 @Override 注释,然后在 Eclipse 中点击 Clean project。
您还可以尝试使用 Retroweaver 从 Java6 类创建 Java5 版本。
使用 Eclipse 搜索和替换(删除)“@Override”的所有实例。然后使用“清理”添加回非接口覆盖。
脚步:
我了解您的问题,将您的 jdk 从您的 jdk 更改为大于 1.5
通过配置 IDE 项目设置为使用 Java 6 JRE 或更高版本,有时不会消除 eclipse 错误。对我来说,重启Ecipe IDE 很有帮助。
即使从 windows 选项卡将编译器合规性设置更改为 1.6 或 1.7,然后是首选项,然后是 java,然后是编译器并设置编译器合规性,我仍然遇到这个问题。我们的想法是,我们需要进入项目文件夹,右键单击 Java 并将编译器合规性设置为 1.6 或更高版本。这对我有用。