2011-12-12 62 views
9

我正在導入一個已被棄用的類,我不得不使用它。在導入語句時忽略棄用類型警告

我想通過使用@SuppressWarnings("deprecation")註釋來抑制不推薦的錯誤。

按上標註的評論:

作爲一個風格問題,程序員應該始終使用此批註上 最深層的元素它是有效的。如果你想 以特定的方法抑制警告,你應該註釋該方法,而不是它的類。

所以我顯然不希望其註釋類,從而對任何型我的類使用抑制廢棄警告,但我也想用import語句來避免打字的完全限定類型名稱,它跨越我的整個監視器,每次使用棄用的類。

我覺得我要像做註解import語句@SuppressWarnings(不可能),或在@SuppressWarnings註解指定哪些類型忽視的警告(如@SuppressWarnings("deprecation", "fully.qualified.type.name")

我想向編譯器指示「沒關係,如果我使用這個,只有這個,被棄用的類,被其簡單名稱引用,在這個其他類中的任何地方,以及任何其他類別,我參考你應該讓我知道「

有什麼像這樣可用?

+0

它是完全合格的名稱跨越整個顯示器?我想知道它爲什麼被摧毀...... – corsiKa

+0

這是一個很大的項目......它應該被分成幾個小項目,但那不是我的部門。 –

+3

你只是被編譯器警告所困擾嗎? – Paul

回答

4

解決此問題的一種方法是執行以下操作,假設您可以擴展Deprecated類。

import comp.DeprecatedClass; 

@SuppressWarnings("deprecation") public class MyDeprecatedClass extends DeprecatedClass{ } 

然後,您可以使用您的版本,而不必擔心警告。

+0

我想這是一個選項,只要該類不是最終的,你不介意添加一個新的類層次結構層。看起來像一個相當極端的解決方案,但我。 另外:如果你這樣做,沒有什麼能阻止你在其他地方錯誤地重新使用MyDeprecatedClass並且看不到警告消息。 –

+0

當使用Eclipse時,我可以將鼠標懸停在MyDeprecatedClass上,它會顯示「@SuppressWarnings(value = {」deprecation「})」,所以它會給你一個暗示你以微妙的方式壓制它。儘管我同意這是極端的,但你可以在你想要使用它的地方做到這一點: @SuppressWarnings(「deprecation」)private class MyDeprecatedClass extends comp.DeprecatedClass {} 不幸的是,這不是一個漂亮的工作。 – Jyro117