比较最终变量时如何摆脱警告?

时间:2013-03-22 10:15:21

标签: java

作为简化示例,我有:

public static final int RUN_TYPE = 1;

if(RUN_TYPE == 1)
{

}

这给了我if上的“比较相同”警告。如何在不禁用全局“比较相同”警告的情况下摆脱此警告?

2 个答案:

答案 0 :(得分:3)

“比较相同”警告是因为编译器知道该值,它知道RUNT_TYPE的值为1,并且您将它与常量1进行比较,这是没有意义的。

如果将它与另一个不恒定的变量进行比较,则不会出现警告,因为直到运行时才能确定该值。

示例:

int ANOTHER_INT = 1;
if(RUN_TYPE == ANOTHER_INT {}

这不会给你“比较相同”警告。

答案 1 :(得分:0)

由于您的变量为final,因此更改的机会不大。 你为什么需要测试它的价值?

修改

...然后使用-D标志在java命令行上传递一个属性,并在代码中读取此属性,例如

if ( "WHATEVER".equals(System.getProperty("myproperty", "default_value"))) {
  ...
}