【问题标题】:avoid NullPointerException check避免 NullPointerException 检查
【发布时间】:2016-12-01 05:29:51
【问题描述】:

我正在将 SonarLint 插件 (2.1.0) 与 Eclipse Mars (4.5.0) 一起使用,并且在此代码中得到:NullPointerException might be thrown as listToCheck is nullable here

if (checkListNotNull(listToCheck)) {
    listToCheck.get(0); // I get here that warning
}

checkListNotNull是一个方法,如果传递的列表不为null,则返回true

是否可以避免这种声纳警告?

谢谢

【问题讨论】:

  • 您使用的是什么版本的 Java?与额外的方法相比,listToCheck == null 更适合 nullCheck。或者,从 Java 8 开始,您可以使用 Optional
  • checkListNotNull(listToCheck)listToCheck != null 更长更难阅读,那么为什么不使用后者呢?
  • 我改变了一点我的方法,但真正的代码检查不为空也不为空。返回列表 != null && !list.isEmpty();我正在使用 Java 5(项目需要)
  • @OscarBcn 警告你知道不会造成问题,你可以忽略。无论如何,编译器只是不检查你的方法做了什么。
  • 那些是声纳警告(问题)

标签: java eclipse sonarqube sonarlint


【解决方案1】:

就这么做

if(listToCheck != null && !listToCheck.isEmpty()) {
    listToCheck.get(0);
}

而且我认为警告会消失 (在这种情况下使用另一种方法似乎没有用;警告就在这里,因为 Eclipse 无法理解您的 checkListNotNull 做了什么)

【讨论】:

  • 但是你得到一个例外是你有一个空列表
  • 是的,我知道,谢谢。我想知道我的代码是否与我的代码有关
猜你喜欢
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 2010-09-21
  • 1970-01-01
相关资源
最近更新 更多