java 三菱日蝕缺點 - 將項目導入Eclipse後,'必須重寫超類方法'錯誤



cross試駕 三菱日蝕評價 (11)

任何時候我必須將我的項目重新導入到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自動重新創建方法,它將使用我已有的相同參數名稱,所以我不知道問題出在哪裡,除此之外,它自動格式化方法我。

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

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


Answers

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設計的典型代表。


如果這種情況發生在任何其他嘗試了阿爾法零和保羅的方法但仍然無法工作的人身上。

對我來說,即使在執行Project> Clean之後,eclipse也會以某種方式“緩存”編譯錯誤...

我必須取消選中項目>自動構建,然後執行項目>清理,然後再次構建。

另外,如果有疑問,請嘗試重新啟動Eclipse 。 這可以解決很多尷尬的,無法解釋的錯誤。


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


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


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

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

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

在下面找到:

項目 - >構建路徑 - >庫

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

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


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


保羅的答案部分為我工作。 那我仍然有一個錯誤。 所以,除此之外,我還必須去Properties-> Project Facets,並將Java版本從1.5設置為1.6。

也許這有幫助。


這是我第二次遇到這個問題。 第一次根據alphazero推薦它的工作。 但在第二次我設置為1.6它不起作用,就像清理和重建後的'CACHE'這個錯誤。

嘗試關閉“自動構建”Rollin_s說 - >錯誤仍然在這裡!

所以我從包資源管理器中刪除了問題項目(已經設置為1.6),並再次導入它 - >這次開始重建並且沒有錯誤

希望這可以幫助別人


AFAIK,在HBase源代碼中,有一些關於對像大小的計算基於一些常見的已知規則,不同的字段如何占據空間。 它在32位或64位操作系統中會有所不同。 至少在人們都知道的上面。 但我沒有詳細研究他們為什麼那樣做的細節。 但他們確實在源代碼中做到了。

此外,Java.lang.intrument.Intrumentation類也可以通過getObjectSize()來實現。 我想開源項目也是基於它的。 在此鏈接中,有如何使用它的詳細信息。 在Java中,確定對像大小的最佳方法是什麼?

作為評論。 其實我也感興趣,如果你在源代碼中這樣做,最有意義的用例是什麼?





java android eclipse override superclass