作为一个简化的例子,我有:
public static final int RUN_TYPE = 1;
if(RUN_TYPE == 1)
{
}
这在 if 处给了我“比较相同”的警告。如何在不全局禁用“比较相同”警告的情况下摆脱此警告?
作为一个简化的例子,我有:
public static final int RUN_TYPE = 1;
if(RUN_TYPE == 1)
{
}
这在 if 处给了我“比较相同”的警告。如何在不全局禁用“比较相同”警告的情况下摆脱此警告?
“比较相同”警告是因为编译器知道该值,它知道 RUNT_TYPE 的值为 1,并且您将它与没有意义的常量 1 进行比较。
如果将它与另一个不是常量的变量进行比较,则不会出现警告,因为直到运行时才能确定该值。
例子:
int ANOTHER_INT = 1;
if(RUN_TYPE == ANOTHER_INT {}
这不会给你“比较相同”的警告。
由于您的变量是可变的final
,因此它改变的机会很少。为什么需要测试它的值?
编辑
...然后使用标志在java命令行上传递一个属性-D
并在您的代码中读取此属性,例如
if ( "WHATEVER".equals(System.getProperty("myproperty", "default_value"))) {
...
}