團隊協作開發中,常遇到同事提交程式碼後,本地更新專案卻編譯失敗,報錯:The method getPOIByName(String) of type POISearchByGeoway must override a superclass method。這類問題通常源於 JDK 版本與編譯器相容性設定不一致。本文詳細說明錯誤成因與 Eclipse/IntelliJ IDEA 中的快速修正步驟。
@Override 註解在 Java 5 僅允許標註「覆寫父類別方法」;Java 6 起擴展支援「實作介面方法」。若專案原始碼使用 Java 6+ 語法(介面方法加 @Override),但編譯器相容性設定為 1.5,編譯器會誤判為「必須覆寫超類別方法」而報錯。


pom.xml 或 build.gradle 中的 maven.compiler.source/target 版本<!-- pom.xml -->
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
// build.gradle
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
配置後執行 mvn clean compile 或 gradle clean compileJava,IDE 會自動同步編譯器版本,徹底避免團隊成員環境不一致導致的編譯錯誤。
@Override 用於介面實作方法,需 Java 6+ 編譯器支援。