为什么Eclipse在实现接口方法时添加@Override注释(但在Maven中却不起作用)?

3
我在 Eclipse 中用 Java 写了一个简单的项目,只是想要一个概念验证。然后它变得足够好以便重构为 Maven 项目,所以我创建了 Maven 项目,复制了源代码,重新导入了项目到 Eclipse 中。但是每个我实现的接口都报错了,原因是方法上有 @Override 注解,但是这个注解是 Eclipse 自动生成的!难道 Eclipse 不应该擅长这种提示吗?
我把所有内容都删除了。奇怪的是,如果我现在实现一个接口(比如 Runnable),使用 cntrl+1 工具生成的 Override 注解就不再出现了。
为什么在 Eclipse 创建项目时很好用,但在 Maven 项目中却不行了?为什么 Eclipse 在 Maven 项目中停止添加该注解了呢?
1个回答

3

我自己发现了这个问题,所以在这里写下来,以防有人需要。当导入Maven项目时,我没有注意到Eclipse将JDK兼容性设置为1.5。更改后,一切都解决了,代码生成工具甚至为接口包括了@Override注释。


不错的发现.. JDK 1.5 再次出现 - apesa
我认为你最好在Maven中将JDK升级到1.6。 - dma_k
这是因为Eclipse使用了自己的Maven而不是系统的Maven。无论如何,如果您能指出一些详细控制此问题的页面,那将非常好。 - gotch4
谢谢,你刚刚救了我的一天!这太糟糕了。Java 6自从5年前就已经发布了吧? - Alexis Dufrenoy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接