我经常声明一些常量来有条件地编译/不编译代码块。我把这些常量放在一个类上,然后我在整个(大)应用程序代码中使用它们。
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'
导航到配置,这应该关闭它。
一个在非静态方法中工作的丑陋的解决方法:
- 将
MyClass.CONSTANT
静态访问替换为this.CONSTANT
访问 - 然后你将有一个"静态字段MyClass。警告。
- 此警告可以被
@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);
}