if语句可以触发空异常吗?

JGe*_*kis 0 java nullpointerexception

在我的代码中,我有一行生成空指针异常

 if (x[i].getPos() == "QB") {
     playerTextBox.setText(playerTextBox.getText() + "\n" + f.printPlayer(x, i));
 } 
Run Code Online (Sandbox Code Playgroud)

我几乎是积极的,null不是数组x.我进行了调试,并且有一些对象填充了阵列.我现在只是好奇,我想如果x为null,你会得到一个空指针异常 (x[i].getPos() == "QB")吗?

Lui*_*oza 5

好吧,x[i]是的null,否则就不会有任何例外.另外,你应该比较String使用equals,而不是==.

if应该看起来像这样:

if (x[i] != null && "QB".equals(x[i].getPos()) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我建议你使用一个List<Yourclass>而不是一个数组.考虑null到默认情况下数组填充值.