我在Eclipse中使用@Override
注释时遇到了烦人的问题。通常,当我在新PC上导入工作项目时,Eclipse会将某些@Override
注释标记为错误。如果我删除注释一切都很好,Eclipse也表示方法覆盖了父方法,但添加覆盖注释会再次导致错误。我目前正在开发一个Android项目,所以它可能是Android的问题,而不是Eclipse ..
答案 0 :(得分:46)
这很可能是因为您在Java 1.5和Java 1.6之间切换。在1.5中,您无法使用@Override标记接口实现,但您可以使用1.6。
快速谷歌搜索发现了这两个版本之间注释差异的良好解释:http://www.techienuggets.com/CommentDetail?tx=38155
@Override的语义不同 JDK 1.5和JDK 1.6。在JDK 1.5中, 不允许@Override注释 用于方法的实现 在接口中声明,而它们 允许在JDK 1.6中使用。更多 信息,见:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5008260 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6399361 http://blogs.oracle.com/ahe/?entry=override
事实就是这样的描述 覆盖注释未更新 在JDK API文档中。这一直是 报告为一个错误:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6501053bugdatabase/view_bug.do?bug_id=6501053
答案 1 :(得分:21)
转到
window -> prefrences -> java -> compiler
并将其设置为1.6,因为符号从1.6开始,所以如果编译级别小于1.6则会出错
答案 2 :(得分:6)
有几个地方配置了Java编译器设置。
一种方法是Window->Preferences->Java->Compiler->Compiler Compliance Level -> set 1.6 or above
。
另一种方法是右键单击Project->Properties->Java Compiler->JDK Compliance -> Select 1.6 or above.
此外,您可以取消选择“启用项目特定设置”,这将消除未来的JDK编译器合规性错误。 删除多个JDK版本实例,除非不同的项目需要它们。
答案 3 :(得分:3)
确保使用的Java SDK是最新的,并且eclipse使用正确的SDK版本(如果您安装了多个版本)并使用正确的SDK版本处理您的Android项目......