【问题标题】:SonarQube Blocker Issue NullPointerException might be thrown as 'contacts' is nullable hereSonarQube Blocker 问题 NullPointerException 可能会抛出,因为“联系人”在这里可以为空
【发布时间】:2017-10-03 13:03:48
【问题描述】:

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

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

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

【问题讨论】:

  • 您的getContactDetails() 可能会返回null

标签: java sonarqube


【解决方案1】:

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

syso(contacts.size()); 

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

通过添加来解决此问题

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

或者在getContactDetails()中不返回null

【讨论】:

    【解决方案2】:

    Sonar 抱怨您正在调用 .size() 的东西可能是 null。所以请确保你不要这样做:

    List<Contact> getContactDetails(){...}
    
    public void checkSize() {
      List<Contact> contacts = getContactDetails(); 
      syso(contacts == null ? "contacts is null" : contacts.size()); 
    }
    

    【讨论】:

      猜你喜欢
      • 2023-01-30
      • 2021-03-12
      • 2018-06-20
      • 1970-01-01
      • 2021-06-06
      • 2021-06-18
      • 2018-11-15
      相关资源
      最近更新 更多