2011-04-20 127 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); 
    } 
}