SonarQube 阻止程序问题 NullPointerException 可能会被抛出,因为这里的“联系人”可以为空

Beg*_*ake 1 java sonarqube

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

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

    public void checkSize() {
      List<Contact> contacts = getContactDetails(); 
      syso(contacts.size()); 
    }
Run Code Online (Sandbox Code Playgroud)

Ger*_*uer 5

根据您的 实现getContactDetails(),此方法可能会返回null,因此该行

syso(contacts.size()); 
Run Code Online (Sandbox Code Playgroud)

可能由于 NPE 而失败,因为contacts可能是null.

通过添加来解决此问题

if(contacts != null) {
    syso(contacts.size()); 
} else {
    // exception, error handling or nothing
}
Run Code Online (Sandbox Code Playgroud)

或者通过不返回nullgetContactDetails()