Java @Override报错问题解决方法

问题描述

    在实现接口(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,刷新工程,从新编译。 编译器

相关文章
相关标签/搜索