我有一个现有项目,该项目@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.5
JDK 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”的所有实例。然后使用“清理”重新添加非接口替代。
脚步: