0

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

配置文件

    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") 

不成功。

4

2 回答 2

0

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

于 2014-03-21T18:01:56.867 回答
0

适用于非静态方法的丑陋解决方法:

  1. MyClass.CONSTANT用访问替换静态this.CONSTANT访问。
  2. 然后,您将收到一个“应以静态方式访问静态字段 MyClass.CONSTANT”警告。
  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);
}

此解决方法仅适用于非静态方法。

于 2015-02-20T12:36:51.770 回答