簡體   English   中英

@Override無法在Maven項目中工作

[英]@Override not working in Maven project

我有幾個這樣的覆蓋方法:

@Override
public int compareTo(Property p) {
    return getText().compareTo(p.getText());
}

作為Java項目,它工作正常,但作為Maven項目,它返回以下錯誤:

The method compareTo(Property) of type Property must override a superclass method

在研究了這個之后,我想我jdk1.6_u25我的JRE系統庫( jdk1.6_u25 )包含在我的POM文件中,或者這是一個完全不同的問題?

非常感謝。

您不需要其他依賴項。 但默認情況下,maven使用Java 5語言級別,其中不允許@Override實現接口方法。 這是在6中引入的。

所以你必須配置編譯器插件使用語言級別6,如下所示:

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

compareTo是一種通用方法。 不使用泛型,因此compareTo(Object)是您可以覆蓋的唯一方法。

請檢查:

  1. Maven使用java編譯支持泛型。
  2. 源級別> = 5。

執行mvn -V以查看java maven用於編譯的版本。

問候

謝謝大家的意見,很多人都說Maven默認使用Java 5並且可能是問題的原因,因此,我能夠通過這個答案確定問題:

為什么javac在@Override注釋上失敗

JDK編譯器的合規性級別默認設置為1.5; 一旦我將其設置為1.6,錯誤就被刪除了。

非常感謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM