Java @Override报错问题解决方法

问题描述

    在实现接口(interface)的时候,使用@Override这个注解会导致报错,错误提示:The method xx(xxxxx) of type xxxxx must override a superclass method

问题原因

    jdk1.5下要使用@Override这个注解必须保证被标注方法来源于class而不是interface,也就是说,在jdk1.5下,实现interface的方法是不支持使用@Override这个注解的,验证代码如下:

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() { // 报错
		}
	};
}

解决方案

    1、把接口实现方法使用的@Override全部删除(如果有N多个@Override的话,我觉得 ... ^_^);

    2、修改编译的jdk版本(比较省时,省力的方式):

    目前这个问题在jdk1.6以上版本都做了修改,所有把jdk改为1.6以上版本就OK了,针对我使用的Eclipse修改java编译器为jdk1.6方式如下:

    (1) 首先要确保机器上安装了jdk 1.6;

    (2) 选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.6,刷新工程,重新编译;

    (3) 如果问题还没解决,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译。

转载于:https://my.oschina.net/u/656588/blog/547224

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值