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;
}
在Eclipse中,我也在最后一行看到警告(str1
可能为null)。
str1
在null
return str1.equals(str2) ? COMPARE_EQUALS : COMPARE_DIFFERS;
str1
#define FILE_PATH "/data/sdata.txt"
int fptr = open(FILE_PATH, O_CREAT | O_RDWR | O_SYNC | O_APPEND, 0665);
if (fptr < 0) {
logE("File open failed (%s)", strerror(errno));
}
File open failed (Permission denied)
中{{1}}在{{1}}为什么?{/ 1}}
答案 0 :(得分: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;
}
}
}
答案 1 :(得分:2)
在您致电str1
时,null
无法成为$item['%'] = array();
。您应该在该位置禁止此警告。