关于android:在Eclipse中使用覆盖注释的Bug

Bug with Override annotations in Eclipse

我对Eclipse中的@Override注释有一个恼人的问题。通常,当我在新的PC上导入工作项目时,Eclipse会将一些@Override注释标记为错误的。如果删除注释,一切都很好,Eclipse还指示方法正在重写父方法,但是添加重写注释会再次导致错误。我目前正在开发一个Android项目,所以这可能是Android的问题,而不是Eclipse的问题。


这很可能是因为您在Java 1.5和Java 1.6之间切换。在1.5中,不能用@override标记接口实现,但可以在1.6中标记。

一个快速的谷歌搜索找到了这两个版本之间注释差异的很好解释:http://www.techienuggets.com/commentdetail?Tx=38155

Semantics of @Override is different in
JDK 1.5 and JDK 1.6. In JDK 1.5, the
@Override annotation is not allowed
for implementations of methods
declared in an interface, while they
are allowed in JDK 1.6. For more
information, see:

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

It is fact that the description of the
Override annotation was not updated
in the JDK API docs. This has been
reported as a bug:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6501053bugdatabase/view_bug.do?bug_id=6501053


只要去

1
 window -> prefrences -> java -> compiler

并将其设置为1.6,因为符号从1.6开始,所以如果编译级别小于1.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版本的多个实例,除非不同的项目需要它们。


确保使用的Java SDK是最新的,并且Eclipse使用正确的SDK版本(如果您安装了多个SDK),并用正确的SDK版本处理您的Android项目…