空指针异常添加空检查

时间:2015-05-20 22:18:01

标签: java nullpointerexception null

在此行解决Null指针异常的简单且最好的方法:

oS = ((SyIntBVO)syIntBVOList.get(0)).getSource().trim();  

getSource变量的异常。如何添加空检查?

2 个答案:

答案 0 :(得分:1)

String oS = ((SyIntBVO)syIntBVOList.get(0)).getSource();

if(os != null) {
    os = oS.trim(); // we're good
} else {
    // deal with null
}

或者,如果get(0)返回null,则可以使用:

SyIntBVO syIntBvo = ((SyIntBVO)syIntBVOList.get(0));

if(syIntBvo != null) {
    String os = SyIntBvo.getSource().trim(); // we're good
} else {
    // deal with null
}

要确定您需要哪一个,我们需要更多详细信息,例如:堆栈跟踪。

答案 1 :(得分:1)

根据您需要代码的“防御性”,从技术上讲, 1}}。在极端情况下,这是您取消引用的任何对象。例如......

null可以null吗?然后你需要在取消引用之前检查它:

syIntBVOList

null可以if (syIntBVOList == null) { return; } SomeType variable = syIntBVOList.get(0); 吗?它的版本可以是variable吗?

null

可以null返回SyIntBVO anotherVariable = ((SyIntBVO)variable); if (anotherVariable == null) { return; } 吗?相同的模式。等等...

您的代码真正取决于getSource()可能存在或不可能存在的问题。如果对象的这些实例中的任何一个(无论是存储在变量中还是直接在线引用)都可以是null,那么您需要在取消引用之前检查该null引用。

(注意:它通常被认为是一种方法的反模式,应该返回一个实例,有时返回null。正是因为这需要消耗代码才能防守。)