eclipse使用问题记录—Java @override报错的解决方法

问题描述Java的Eclipse工程导入别人提供的工程时后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,

《1》因为@override具有重载检查的作用,随意的删除这个作用将失效!

其具体的内部检查机制是:

java.lang.Override是一个marker annotation类型,它被用作标注方法。它说明了被标注的方法重载了父类的方法,起到了断言的作用。如果我们使用了这种annotation在一个没有覆盖父类方法的方法时,java编译器将以一个编译错误来警示告知。 
这个annotaton常常在我们试图覆盖父类方法而确又写错了方法名时发挥巨大的作用。
《2》有时候有@override的地方特别多。删除@override也是很浪费时间的
具体问题截图:
 接口

eclipse使用问题记录—Java @override报错的解决方法
实现类
eclipse使用问题记录—Java @override报错的解决方法
问题原因:
@Override注释在jdk1.5环境下只能用于对继承的父类的方法的重写,
但不能用于对实现的接口中的方法的实现。
(也就是jdk1.5的 @Override这个annOotation 并不把接口认为是超类 ,
也就是说 如果在1.5下要使用@Override 这个annotation 必须保证 被标注方法来源于class 而不是interface;

问题解决:
针对Jdk1.5的bug,在jdk1.6以后版本得到解决:
只需要将eclipse中项目的编译等级改为jdk1.6(包含jdk1.6)以上即可 
具体操作参考如下截图:
eclipse使用问题记录—Java @override报错的解决方法eclipse使用问题记录—Java @override报错的解决方法eclipse使用问题记录—Java @override报错的解决方法
按照上图将jdk有默认jdk1.5改为jdk1.7后即可;
修改后效果图:之前的@override报错消失了
eclipse使用问题记录—Java @override报错的解决方法