我有一个现有项目,该项目@Override在重写接口方法而不是超类方法的方法上使用。我无法在代码中更改它,但是我希望Eclpse不再抱怨注释,因为我仍然可以使用Maven进行构建。
我将如何禁用此错误?
注意:由于项目要求,我需要针对Java 1.5进行编译。
我有一个现有项目,该项目@Override在重写接口方法而不是超类方法的方法上使用。我无法在代码中更改它,但是我希望Eclpse不再抱怨注释,因为我仍然可以使用Maven进行构建。
我将如何禁用此错误?
注意:由于项目要求,我需要针对Java 1.5进行编译。
Answers:
@Override在实现接口声明的方法的方法上使用注释仅从Java 6起有效。这是Java 5中的错误。
确保将您的IDE项目设置为使用Java 6 JRE,并且“源兼容性”设置为1.6或更高:
请记住,Eclipse可以覆盖特定项目的这些全局设置,因此也请检查这些设置。
更新:
Java 5下的错误不仅与Eclipse有关;还与Java 5有关。javac直接从命令行使用将给您同样的错误。它不是有效的Java 5源代码。
但是,您可以指定-target 1.5JDK 6的选项javac,它将从Java 6源代码生成Java 5版本类文件。
进行如下操作:
项目->属性-> Java编译器->
项目特定设置可能已启用。选择项目Project > Properties > Java Compiler,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注释(这对您的情况没有帮助)。
Update2: 如果仅手动构建,则可以编写一个小程序,将原始项目复制到一个新程序中,从Java源代码中删除@Override批注,然后在Eclipse中单击Clean项目。
您也可以尝试Retroweaver从Java6类创建Java5版本。
使用Eclipse搜索和替换(除去)“ @ Override”的所有实例。然后使用“清理”重新添加非接口替代。
脚步: