[英]Do I have to use `trim()` on every `String` comparison, on both sides?
[英]Do I need to check null on both sides of an OR condition?
考慮成員變量:
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())
就足夠了。
在Logical OR條件下,如果第一部分為false,Java將僅評估第二部分。
不,第一個片段很好。
在Java(以及許多類似的語言,如C或C ++)中,邏輯運算符&&
和||
進行短路評估 。 在||
的情況下 ,如果左側操作數為true
,則不會評估右側操作數。
歡迎來到Stack Overflow
像||
這樣的運算符 , &&
在Java中是短路運算符 ,表達式的第二部分只會在第一部分不足以確定值時進行檢查
所以, if(foo==null || foo.isEmpty())
就足夠了。
if (foo == null || foo.isEmpty()) setFoo(foo);
工作正常。 在這種情況下,如果foo
為null, setFoo(foo)
調用setFoo(foo)
。 如果foo
不為null,並且foo
為空,則還將調用setFoo(foo)
。
我發現使用StringUtils.isBlank(foo)
(來自apache commons-lang)更優雅,所以你不需要|| 一點都不
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.