我的项目中有一个常量,它代表一些时间跨度。当它低于 0 时,我想禁用与时间跨度相关的检查。
一般情况下会检查
if(CONSTANT > 0) foo();
else bar();
但这会导致警告“条件始终为“假””或“条件始终为“真””,具体取决于常量的值。
有没有办法绕过这个警告,以防止另一个开发人员看到这一行?
<小时/> 编辑: 我的问题有点太笼统了。抱歉。我有一个计时器,经过一段时间 TIME_FOR_AUTH (常量)后,它会清除我的模型。这是一项安全措施,在测试时会出现问题。因此,我在代码中添加了一个检查 if(TIME_FOR_AUTH > 0) ...
。
现在我收到了所描述的警告。由于 IntelliJ 总是要求我删除这个构造(而且我在这个项目中并不孤单),所以我想知道在 Java 中是否有这样做的常见做法/是否有可能抑制警告。
最佳答案
首先,这只是一个警告。
其次,您可以使用 @SuppressWarnings
抑制警告。注解。对于“始终为真/假”警告,它将是 @SuppressWarnings("ConstantConditions")
代码示例:
package stackoverflow;
public class SuppressWarningsExample {
@SuppressWarnings("ConstantConditions")
public static void main(String[] args) {
final int value = 100;
if (value > 0)
System.out.println("Yes");
else
System.out.println("No");
}
}
对于 IntelliJ IDEA,您还可以使用内联 // noinspection <InspectionName>
抑制每个表达式的警告。评论:
// noinspection ConstantConditions
if (value > 0)
System.out.println("Yes");
else
System.out.println("No");
关于java - 正确地表述常数的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56610757/