记java一次尴尬的@Override
刚才在写代码的时候,发现实现了接口的方法上面无法写@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,在弹出的页面中可以进行设置。
而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,刷新工程,重新编译。