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,刷新工程,從新編譯。 編譯器

相關文章
相關標籤/搜索