取消警告:死代码和条件编译



我经常声明一些常量来有条件地编译/不编译代码块。我把这些常量放在一个类上,然后我在整个(大)应用程序代码中使用它们。

Conf.java

    public static final int GUI_ACTIONBAR_HEIGHT=0;

其他地方(示例):

super.onCreate(savedInstanceState, Conf.GUI_ACTIONBAR_HEIGHT==0?R.layout.activity_funq_play_noactionbar:R.layout.activity_funq_play, true);

但是,在所示的情况下,这会触发警告"comparing identical expressions"。这显然是我可以忍受的,但我想知道是否有任何SupressWarning魔法来摆脱它(以及源代码中的黄色警告图标)。

@SupressWarnings ("unused") 

行不通

这是一个Java编译警告,打开/关闭它实际上取决于IDE。假设您正在使用Eclipse,您可以通过Preferences > Java > Compiler > Errors/Warning > Comparing identical values ('x==x') 'ignore'导航到配置,这应该关闭它。

一个在非静态方法中工作的丑陋的解决方法:

  1. MyClass.CONSTANT静态访问替换为this.CONSTANT访问
  2. 然后你将有一个"静态字段MyClass。警告。
  3. 此警告可以被@SuppressWarnings("static-access")和不再比较警告抑制。

在你的例子中:

@SuppressWarnings("static-access")
public void onCreate(Object p1, Object p2, boolean b) {
    super.onCreate(savedInstanceState, this.GUI_ACTIONBAR_HEIGHT==0?R.layout.activity_funq_play_noactionbar:R.layout.activity_funq_play, true);
}

相关内容

  • 没有找到相关文章

最新更新