if(str1 == null)抛出NullPointerException时

Muh*_*edy 2 java string nullpointerexception

在java中,以下行是否有可能(甚至0.01%)抛出NullPointerException?

public static void handleRequest(String str1){
   if (str1 == null){  // this line throws NPE, how come !! is it a JDK1.5 bug!!
        return null;
   }
   // other staff
}
Run Code Online (Sandbox Code Playgroud)

实际上我在代码中掉了一些bug,它说方法中的exact上面一行会抛出一个java.lang.NullPointerException?!

Eta*_*oin 19

不,这条线NullPointerException在任何情况下都不会抛出.

但这取决于你所说的"相似".例如,如果您的实际代码行是

if (foo.str1 == null)
Run Code Online (Sandbox Code Playgroud)

那么如果foo为null,你将得到一个NullPointerException .


akf*_*akf 10

if (str1 == null)  
Run Code Online (Sandbox Code Playgroud)

不会抛出NullPointerException.

if(str1.equals(null)) 
Run Code Online (Sandbox Code Playgroud)

确实有这种可能性.

编辑:

如果您的堆栈跟踪引用了上面的行,那么您运行的代码很可能与您正在查看的代码不匹配.如果在编译和部署类之后对类进行了修改,则会发生这种情况,从而导致行号不匹配.