相信大家都遇到过,比如导入进来的项目,别人电脑上编译无错,在你这里报错,提示要你去掉@Override,但是去掉的地方有太多,你绝对不会
一个一个的去删掉,这不是有效方法,网上搜索了一下问题,处理如下:
说是jdk的问题,jdk1.5有bug,不支持对接口的实现,那么jdk1.6修复了此bug,无论对父类的方法覆盖或者是对接口的实现都加上@Override,
第一点就是确保安装了jdk1.6.
然后在eclipse中修改配置,在 Windows->Preferences-->java->Compiler-->compiler compliance level中选择1.6后,点apply
如果还是 不行,在报错的项目上右击,选择 Properties-->Java Compiler-->compiler compliance level中选择 1.6后,点apply
问题解决!
详解:
@Override 是伪代码,表示重写
好处:
1.可以当注释用,方便阅读
2.编译器可以给你验证@Override下面的方法是否是你父类中所有的,若没有,则报错
例如:
在重写父类方法onCreat()时,在方法前面加上@Override后系统会帮你检查方法的正确性:
public void onCreat(){.....} 正确写法
public void oncreat(){.....} 错误写法
会报错:Themethodoncreate(Bundle)oftypeHelloWorldmustoverrideorimplementasupertypemethod
而如果你不加@Override,则编译器将不会检查出错误,而是认为你是新定义的一个方法。