在此行解决Null指针异常的简单且最好的方法:
oS = ((SyIntBVO)syIntBVOList.get(0)).getSource().trim();
getSource变量的异常。如何添加空检查?
答案 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
。正是因为这需要消耗代码才能防守。)