2011-04-20 125 views
3

以下代碼(其中Config.PREFERENCES_ENABLEstatic final boolean)會產生編譯器警告(在if塊之後的所有代碼上,警告爲「死代碼」),並嘗試使用@SuppressWarnings("all")產生語法錯誤。我知道我在這裏有點強迫症,但你知道這是怎麼回事。在Eclipse中擺脫惱人的警告

void displayPreferences() { 

    if(!Config.PREFERENCES_ENABLED) return; 

    startActivityForResult(
      new Intent(this, PrefsActivity.class), 
      PREFERENCE_ACTIVITY); 
} 

回答

3

除了將Eclipse編譯器的喜好,還有一些其他選項可以選擇:

  1. 指定@SuppressWarnings("unused")抑制所述特定的警告的方法。
  2. Config.PREFERENCES_ENABLED中刪除final以滿足編譯器。
  3. 將首選項存儲在某個外部文件中並在運行時讀取。

第一個選項至少可以讓您保持啓用未使用的編譯器警告,這可能在以後的代碼的其他部分有用。如果你真的擔心在運行時可能會改變它(或者甚至是可取的),那麼第二種選擇可能不是理想的。第三個選項的優點是不需要對首選項進行硬編碼,並且可以將其配置爲無需重新編譯代碼即可輕鬆更改的外部文件。

+0

我想'final'的整個想法是允許在編譯時剝離死代碼。 – EboMike 2011-04-20 00:21:19

+0

@EboMike,對。所以如果不知道OP的目標,很難給出一個好的答案。這些是選項,雖然:) – 2011-04-20 00:29:22

1

Window > Preferences > Java > Compiler > Errors/Warnings > Unused Code

我想。我沒有在我面前打開Eclipse。您也可以在首選項對話框中使用過濾器框來查找它。

0

爲什麼你不這樣寫呢?

void displayPreferences() { 
    if (Config.PREFERENCES_ENABLED) { 
     startActivityForResult(
      new Intent(this, PrefsActivity.class), 
      PREFERENCE_ACTIVITY); 
    } 
}