我经常声明一些常量来有条件地编译/不编译代码块。我把这些常量放在一个类上,然后我沿着(大)应用程序代码使用它们。
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")
没有做到这一点。
答案 0 :(得分:0)
这是一个Java编译警告,打开/关闭它实际上取决于IDE。假设您正在使用Eclipse,则可以通过Preferences > Java > Compiler > Errors/Warning > Comparing identical values ('x==x') 'ignore'
导航到配置。这应该将其关闭。
答案 1 :(得分:0)
一种适用于非静态方法的丑陋变通方法:
MyClass.CONSTANT
访问权限替换静态this.CONSTANT
访问权限。@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);
}
此解决方法仅适用于非静态方法。