此代码中可能存在空指针取消引用错误:
if(!Util.isNull(dir)){
if (dir.isDirectory()){
if(!Util.isNull(dir.list()))
if((!Util.isNull(dir.list().length))) // issue reported here
if(dir.list().length == 0) // another issue reported here
if (dir.delete())
LOGGER.info("deleted:");
}
}
如何解决这些问题?
你检查一下,那就是dir。list()不为空。然后,您对dir执行其他调用。list(),并假设在本例中,该值不能为null。
SonarJava试图告诉您,即使dir.list()
一开始就不是null,但在第二次/第三次调用时它可能会变成null。
要解决此问题:
这也被称为提取变量重构,它具有额外的良好效果。如果您不希望得到dir的结果。list()在调用之间进行更改,这样也可以提高性能,因为程序不需要再次访问文件系统来生成目录的内容。
嗨我有以下方法: 不得不提的是,startDate和endDate是长变量。我尝试在if条件中添加null检查,也尝试使用longValue()方法,但没有结果。你知道我怎样才能解决这个问题吗?可能是fndBugs端的bug?
我的主要问题是,我正在使用try-catch执行resttemplate.exchange,并在子句try之前声明一个空值变量,然后在try中使用它。最后,我的方法返回一个值为RESTTemplate的响应。 本文的预期结果是用Sonarqube解决这个问题。如何将“responsedto”的初始化没有“null”,因为是在声纳上抛出问题。 我已经尝试将“responseEntity respon
我试图用以下代码指出声纳中的关键问题: 我也做了下面的更改,但仍然不起作用 请帮忙。
由于上面代码上调用的方法的返回值,我得到了可能的空指针解引用。 有人能让我知道确切的问题和为什么它是一个问题吗? 提前道谢!如果需要其他细节,请告诉我。
我从Sonar那里得到问题:“由于调用方法的返回值,样式-可能的空指针取消引用。findbugs:np_null_on_some_path_from_return_value。问题在lockuntil.after(new Date())上; 我试图用 但它引入了其他问题。 谁能指导一下吗?
本文向大家介绍C语言取消引用指针,包括了C语言取消引用指针的使用技巧和注意事项,需要的朋友参考一下 示例 要取消引用a_pointer并更改a的值,我们使用以下操作 可以使用以下打印语句对此进行验证。 但是,将一个NULL指针取消引用或其他无效指针将是错误的。这个 通常是未定义的行为。p1可能不会被取消引用,因为它指向的地址0xbad可能不是有效地址。谁知道那里有什么?它可能是操作系统内存,或另一