2012-07-05 85 views
2

從頭開始創建我的項目後,使用Maven依賴控件進行播放並將所有舊文件複製到新項目中,結果發現Eclipse現在宣告了@Override註釋。它說,當這個註釋出現時,「方法必須重寫超類方法」,否則保持冷卻。此外,它在使用快速輸入時不會自動插入此註釋。Eclipse不喜歡@Override註釋

這是爲什麼?

+0

您的方法實際上覆蓋了父類嗎?你用什麼java版本? – WhyNotHugo 2012-07-05 22:58:03

回答

3

更改您的maven pom以強制使用Java 6或7.我之前在使用pom導入項目時出現此問題,它默認使用Java 1.5 JDK。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin>   
    </plugins> 
</build> 
1

您很可能(想要)將@Override放在從接口繼承的方法上。這隻從Java 1.6開始纔有效,您的Eclipse項目很可能設置爲源級別1.5(或者您正在運行非常過時的1.5 JDK,但這不太可能)

+0

根據javadocs:從以下版本開始:1.5 – Matt 2012-07-06 00:20:16

+1

@Matt接口上的覆蓋實際上只能在Java6 +上工作 - 這是一個令人討厭的限制,每個人都會早晚發現它。重寫從1.5開始存在,但僅在重寫類的方法時才存在。或者我誤解了你的帖子? – Voo 2012-07-06 00:45:53