要解决报错就要知道报错的原因。
在继承java父类的时候我们通过自动生成的时候会给我们自动加上@override。
@Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1>可以当注释用,方便阅读
2>编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错
比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法)
使用该标记是为了增强程序在编译时候的检查,如果该方法并不是一个覆盖父类的方法,在编译时编译器就会报告错误。
在父类生成这个的时候报错我将“@override”删去就就可以了。但是当实现接口的时候,发现删掉还是会报错会报错。
把@override不能从根本上解决问题这是jdk的问题,@Override是JDK5就已经有了,但是不支持对接口的实现,认为这不是Override而报错。JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。
要解决该问题,首先要确保机器上安装了jdk 1.6,
然后,选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.6,刷新工程,重新编译。
如果问题还没解决,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译。