刚才在写代码的时候,发现实现了接口的方法上面无法写@Override注解。当时脑袋一片空白,莫非是我以前对重写的认识全错了。
然后开始在网上查找了下,终于找出了问题的所在。记录下来给自己提个醒吧~
@Override是JDK5 就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override 而JDK6 修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override 修改你的eclipse指定的编译器版本 在选项里的java compiler中指定版本至少在5.0以上 例如: @Override public void transfer(final LoginUser loginUser) { ........... } 在5.0报错,在6.0就不报@Override。如果非要在5.0下只能去掉@Override。 在jdk1.6下决定的方法如下: 在myEclipse中改变编译器的方法:Project->Properties->Java Compiler->Configure Workspace Setting 选择6.0,在弹出的页面中可以进行设置。
如果问题还没解决
选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.6,刷新工程,重新编译。
如果问题还没解决,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译。