簡體   English   中英

我是否需要在OR條件的兩邊檢查null?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM