findbug中可能的空指针取消引用是什么意思?

Sae*_*fam 15 java findbugs find sonarqube

我正在使用声纳,我已经得到了这种违反我的代码的和平:

 Correctness - Possible null pointer dereference  
Run Code Online (Sandbox Code Playgroud)

在findbugs有没有人知道这个规则?我搜索了很多,但是我找不到描述这条规则的好的示例代码(用Java),遗憾的是findbugs网站没有关于这条规则的任何示例代码或良好的描述.

为什么会出现此违规行为?

SiB*_*SiB 17

在这里

NP: Possible null pointer dereference (NP_NULL_ON_SOME_PATH)
Run Code Online (Sandbox Code Playgroud)

有一个语句分支,如果执行,则保证将取消引用null值,这将在执行代码时生成NullPointerException.当然,问题可能是分支或语句不可行,并且不能执行空指针异常; 决定这超出了FindBugs的能力.

如果您已经发布了一些代码,那么回答会更容易.

编辑我没有看到很多文档,但这是一个例子!希望这可以帮助!


小智 14

示例代码是这样的.

String s = null ;
if (today is monday){
    s = "Monday" ;
else if (today is tuesday){
    s = "Tuesday" ;
}
System.out.println(s.length()); //Will throw a null pointer if today is not monday or tuesday.
Run Code Online (Sandbox Code Playgroud)