在实现接口(interface)的时候,使用@Override这个注解会致使报错,错误提示:The method xx(xxxxx) of type xxxxx must override a superclass method java
jdk1.5下要使用@Override这个注解必须保证被标注方法来源于class而不是interface,也就是说,在jdk1.5下,实现interface的方法是不支持使用@Override这个注解的,验证代码以下: eclipse
public class OverrideTest { public abstract class ParentClass { public abstract void test(); } ParentClass pc = new ParentClass() { @Override public void test() { // 没有报错 } }; public interface ParentInterface { public void test(); }; ParentInterface pi = new ParentInterface() { @Override public void test() { // 报错 } }; }
一、把接口实现方法使用的@Override所有删除(若是有N多个@Override的话,我以为 ... ^_^); ide
二、修改编译的jdk版本(比较省时,省力的方式): spa
目前这个问题在jdk1.6以上版本都作了修改,全部把jdk改成1.6以上版本就OK了,针对我使用的Eclipse修改java编译器为jdk1.6方式以下: code
(1) 首先要确保机器上安装了jdk 1.6; 接口
(2) 选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.6,刷新工程,从新编译; ip
(3) 若是问题还没解决,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新工程,从新编译。 编译器