SonarQube显示可能的空指针取消引用

时间:2017-07-11 23:17:42

标签: java null sonarqube nullreferenceexception

此代码中可能的空指针解除引用错误:

Full match  12-19   `AB000CD`
Group 1.    16-17   `0`

如何解决这些问题?

1 个答案:

答案 0 :(得分:5)

您检查dir.list()不为空。之后你会对dir.list()进行其他调用,并假设在这种情况下不能为空。

SonarJava试图告诉你,即使dir.list()首先没有为空,它也可能在第二次/第三次调用时变为空。

要解决此问题:

  1. dir.list()的结果保存在变量
  2. 检查变量是否为空
  3. 使用变量
  4. 这也称为提取变量重构,它还有其他好的效果。如果您不希望dir.list()的结果在调用之间发生变化,那么您也会提高性能,因为程序不需要再次访问文件系统来生成内容。目录