0

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

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

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

这个项目已经有 4 个月没有维护了,但是它确实有很长的修改历史和社区贡献。如果它们阻止编译,我无法弄清楚为什么这些@Override注释会存在,但根据我的经验,我不得不考虑那些将它们放在那里的人,以前的项目贡献者,有一些我不清楚的充分理由。项目文档说它是为 JDK 1.5 使用而设计的,所以我尝试在 Eclipse 中交替在 1.5、1.6 和 1.7 下编译它,并且在每种情况下结果都是一样的......编译器对那些非常不满意符号是它们所在的位置。

所以......我错过了什么?

4

2 回答 2

2

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

于 2012-12-15T08:34:27.450 回答
2

您看到的文档是正确的。@override自 JDK 1.6 起,编译器应在实现接口方法的方法上接受

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

于 2012-12-15T08:34:55.463 回答