2011-03-25 67 views
4

,因爲它是解釋here,在Java靜態方法沒有被重載,而是由孩子實現隱藏用於覆蓋(隱藏)靜態方法的等效於@Override的任何註釋?

這意味着你不能使用@覆蓋批註與他們

下面的代碼

@Override 
public static void test(String value1, String value2) { 

給出了這個編譯器錯誤。

The method test(String, String) of type Child must override or implement a supertype method Child.java 

是否有一些等價的註釋可以用來確定我的類是從父類「隱藏」一個現有的靜態方法?

+0

出於好奇,你想通過隱藏超類靜態方法來完成什麼? – templatetypedef 2011-03-25 18:43:59

+0

我正在玩玩框架,它使用控制器動作的靜態方法(有關於使用靜態方法的一個完整的參數)我定義了一個基本控制器,並且我想覆蓋子控制器上的方法... – opensas 2011-03-25 18:53:09

+0

真的不用不這樣做。我想它應該被刪除,並且(在)適當的註釋將是'@ SuppressWarnings'。 – 2011-03-25 19:33:27

回答

1

我不知道,你可以添加任何註釋。但簡單地創建具有完全相同名稱和輸入(方法簽名)的方法應該隱藏它。唯一可以肯定知道的方法是確實瞭解超類方法的細節,然後測試你的方法......這就是我能想到的。我能想到的唯一其他註釋是壓制警告,這與您想要的相反。每當我隱藏這樣的方法時,我通常會從我的IDE中收到警告,告訴我我隱藏了另一種方法。