3

作为一个简化的例子,我有:

public static final int RUN_TYPE = 1;

if(RUN_TYPE == 1)
{

}

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

4

2 回答 2

3

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

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

例子:

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

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

于 2013-03-22T10:23:02.123 回答
0

由于您的变量是可变的final,因此它改变的机会很少。为什么需要测试它的值?

编辑

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

if ( "WHATEVER".equals(System.getProperty("myproperty", "default_value"))) {
  ...
}
于 2013-03-22T10:20:25.113 回答