考虑成员变量:
String foo;
我希望只在
foo
没有被设置或为空时才调用 setFoo
。为此,我不确定以下代码是否足够:
if(foo==null || foo.isEmpty()) {
setFoo(foo);
}
还是在 OR 条件的另一侧也检查 null 更安全呢?
if(foo==null || (foo!=null && foo.isEmpty())) {
setFoo(foo);
}
if(foo==null || foo.isEmpty())
就足够了。
在逻辑或条件中,当第一部分为假时,Java才会计算第二部分。
欢迎来到Stack Overflow
Java中的运算符,如||
、&&
是短路运算符,当第一部分足以确定值时,第二部分才会被检查。
因此,if(foo==null || foo.isEmpty())
就足够了。
if (foo == null || foo.isEmpty()) setFoo(foo);
运行良好。在这种情况下,如果 foo
为 null,则会调用 setFoo(foo)
。如果 foo
不为 null,并且 foo
为空,则也会调用 setFoo(foo)
。
StringUtils.isBlank(foo)
更加优雅,因此根本不需要使用||。