SonarQube Blocker问题NullPointerException可能会被抛出,因为'联系人'在这里可以为空

时间:2016-10-25 06:55:15

标签: java sonarqube

我有一个返回联系人列表的方法。当我在SonarQube服务器上运行此代码时。它显示了一个阻止程序问题,指出 NullPointerException可能会被抛出,因为'联系人'在这里可以为空。。如何解决这个问题?

    List<Contact> getContactDetails(){...}

    public void checkSize() {
      List<Contact> contacts = getContactDetails(); 
      syso(contacts.size()); 
    }

2 个答案:

答案 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()); 
}