java - 三菱日蝕評價 - 統哥eclipse cross




將項目導入Eclipse後,'必須重寫超類方法'錯誤 (8)

任何時候我必須將我的項目重新導入到Eclipse中(如果我重新安裝了Eclipse,或者更改了項目的位置), 幾乎所有重寫的方法格式不正確,導致錯誤The method must override a superclass method

值得一提的是,這是Android項目 - 無論出於何種原因,方法參數值並不總是被填充,所以我必須自己手動填充它們。 例如:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

將最初像這樣填充:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

奇怪的是,如果我刪除我的代碼,並讓Eclipse自動重新創建方法,它將使用我已有的相同參數名稱,所以我不知道問題出在哪裡,除此之外,它自動格式化方法我。

這變得非常痛苦,不得不親自手動重新創建所有我重寫的方法。 如果任何人都可以解釋為什麼發生這種情況或如何解決它..我會很高興。

也許這是由於我格式化方法,這是在另一種方法的參數內?

https://code.i-harness.com


Eclipse默認為Java 1.5,並且您有實現接口方法的類(在Java 1.6中可以使用@Override註釋,但在Java 1.5中只能應用於覆蓋超類方法的方法)。

轉到您的項目/ IDE首選項並將Java編譯器級別設置為1.6,並確保選擇JRE 1.6以從Eclipse執行程序。


使用Eclipse Galileo進入Eclipse - > Preferences菜單項,然後在對話框中選擇Java和Compiler。

現在它仍然可以顯示編譯器合規性級別為1.6,但您仍然會看到此問題。 因此,現在選擇“ 配置項目特定設置... ”鏈接,在那裡您會看到項目設置為1.5,現在將其更改為1.6。 您需要為所有受影響的項目執行此操作。

這個拜占庭菜單/對話框界面是Eclipse糟糕的UI設計的典型代表。


修復必須重寫超類方法錯誤並不困難,您只需要將Java源版本更改為1.6,因為從Java 1.6開始,@Override註釋可以與接口方法一起使用。 要將源代碼版本更改為1.6,請按以下步驟操作:

  1. 選擇項目,右鍵單擊屬性
  2. 選擇Java Compiler並選中復選框“啟用項目特定設置”
  3. 現在編譯器符合性級別為1.6
  4. 應用更改

在我的情況下,上述解決方案都不起作用。 我必須將我的源代碼簽出到另一個文件夾。 從eclipse中選擇File> Switch workSpaces> Other ...,然後將代碼導入新的工作區。 它在那之後起作用。


在我的情況下,當我將一個Maven項目導入到Eclipse中時發生了這個問題。 為了解決這個問題,我在pom.xml添加了以下內容:

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

然後在項目的上下文菜單中,轉到“Maven - > Update Project ...”,然後按OK。

而已。 希望這可以幫助。


如果上述內容都不起作用 ,請確保您選擇了適當的“ 執行環境 ”,而不是 “備用JRE”。

在下面找到:

項目 - >構建路徑 - >庫

選擇JRE System Library並單擊Edit...

如果選擇“Alternate JRE ...”,請將其更改為類似JavaSE-1.8 (jre1.8.0_60)的適合的“執行環境”。 不知道為什麼,但這會解決它。


要解決此問題,請轉至您的項目屬性 - > Java編譯器 - >選擇編譯器合規性級別為1.6-> Apply。


轉到Windows->首選項 - > Java - >編譯器 - >將編譯器合規性級別選擇為1.6(您需要哪個版本) - > Apply-> ok。 現在它的工作。







superclass