我有一个比较器在比较它们的内容之前检查两个对象的“null”。比较方法如下所示:
public int compare(MyClass left, MyClass right) {
if (left == null) {
return right == null ? 0 : 1;
}
if (right == null) {
return -1;
}
// do some other comparing
}
当我通过声纳代码质量检查工具运行它时,它在 if 语句中报告“不兼容的位掩码”错误。(它的内容类似于:“正确性 - 不兼容的位掩码: (e | 0x1 = 0x0) 中的不兼容位掩码会在 ....Compare (MyClass, MyClass) 中产生恒定的结果。我看不出这是怎么回事。任何人都可以对此有所了解?这是误报吗?
顺便说一句,我使用的声纳版本是 2.6。