FindBugs抱怨在此方法中Comparator.compareStrings(String,String)中可能不可行的分支上的str1的可能空指针解除引用:
private static int compareStrings(final String str1, final String str2) {
if ((str1 == null) && (str2 == null)) {
return COMPARE_ABSENT;
}
if ((str1 == null) && (str2 != null)) {
return COMPARE_DIFFERS;
}
if ((str1 != null) && (str2 == null)) {
return COMPARE_DIFFERS;
}
return str1.equals(str2) ? COMPARE_EQUALS : COMPARE_DIFFERS;
}
Run Code Online (Sandbox Code Playgroud)
在Eclipse中,我还在最后一行看到警告(str1可能为null).
在什么情况下可以str1 是null在return str1.equals(str2) ? COMPARE_EQUALS : COMPARE_DIFFERS;(鉴于前两个if块覆盖的情况下,当str1为null)?
Era*_*ran 10
您可以通过重新排列if语句来避免警告:
private static int compareStrings(final String str1, final String str2) {
if (str1 == null) {
if (str2 == null)) {
return COMPARE_ABSENT;
} else {
return COMPARE_DIFFERS;
}
} else {
if (str2 == null)) {
return COMPARE_DIFFERS;
} else {
return str1.equals(str2) ? COMPARE_EQUALS : COMPARE_DIFFERS;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
155 次 |
| 最近记录: |