我有一个返回联系人列表的方法。当我在SonarQube服务器上运行此代码时。它显示了一个阻止程序问题,指出 NullPointerException可能会被抛出,因为'联系人'在这里可以为空。。如何解决这个问题?
List<Contact> getContactDetails(){...}
public void checkSize() {
List<Contact> contacts = getContactDetails();
syso(contacts.size());
}
答案 0 :(得分:4)
根据您getContactDetails()
的实施情况,此方法可能会返回null
,因此该行
syso(contacts.size());
可能因NPE而失败,因为contacts
可能是null
。
通过添加
来解决此问题if(contacts != null) {
syso(contacts.size());
} else {
// exception, error handling or nothing
}
或未在null
中返回getContactDetails()
。
答案 1 :(得分:1)
Sonar抱怨说您正在.size()
上打null
。所以请确保你不这样做:
List<Contact> getContactDetails(){...}
public void checkSize() {
List<Contact> contacts = getContactDetails();
syso(contacts == null ? "contacts is null" : contacts.size());
}