在Java中检查空值的最佳方法是什么?
在调用对象的函数之前,我需要检查对象是否为空,以避免抛出NullPointerException
。
什么是最好的方式去做这件事? 我已经考虑过这些方法。
哪一个是Java的最佳编程习惯?
// Method 1
if (foo != null) {
if (foo.bar()) {
etc...
}
}
// Method 2
if (foo != null ? foo.bar() : false) {
etc...
}
// Method 3
try {
if (foo.bar()) {
etc...
}
} catch (NullPointerException e) {
}
// Method 4 -- Would this work, or would it still call foo.bar()?
if (foo != null && foo.bar()) {
etc...
}
方法4是最好的。
if(foo != null && foo.bar()) {
someStuff();
}
将使用短路评估,这意味着如果logical AND
的第一个条件为假,则结束。
最后一个也是最好的一个。 即逻辑和
if (foo != null && foo.bar()) {
etc...
}
因为在逻辑&&
没有必要知道右边是什么,结果必须是错误的
倾向于阅读:Java逻辑运算符短路
NullPointerException
。 这是一个不好的做法。 最好确保该值不为空。