Java @Override注释是否需要/用于接口实现?

时间:2012-12-15 08:32:49

标签: java eclipse annotations override

我已经下载了一个开源Java项目JMapViewer

http://svn.openstreetmap.org/applications/viewer/jmapviewer/

将其导入Eclipse后,会出现许多编译器错误,所有这些错误都与关于从接口实现的方法之前的@Override符号有关。我完全理解这个错误,因为我只会使用@Override表示法来覆盖超类方法(扩展,而不是实现)的方法,我认为这是唯一的预期用法(即便如此,我也不会认为这是必要的。)

该项目尚未维持4个月,但确实有很长的修订历史和社区贡献。我无法弄清楚为什么那些@Override注释会在那里阻止编译,但是由于我的经验不足,我必须考虑那些把它们放在那里的人,以前的项目贡献者,有一些很好的理由不清楚我。项目文档说它打算用于JDK 1.5,所以我尝试在Eclipse中交替地在1.5,1.6和1.7下编译它,并且在每种情况下结果是相同的...编译器对这些非常不满意符号就在它们的位置。

那么......我错过了什么?

2 个答案:

答案 0 :(得分:2)

这取决于您使用的是Java 5还是Java 6. @Override仅在Java 6中添加了{{1}}接口重写方法。

答案 1 :(得分:2)

您看到的文档是正确的。从JDK 1.6开始,编译器应该接受@override实现接口方法的方法

尝试从命令行进行编译,以确保它仍然不是使用1.5编译器进行eclipse。