[英]String blank (empty or null) check : if structure vs java 8 optional/filter
問題:哪種方法更好,為什么
1- 使用 Apache Commons
if(StringUtils.isNotBlank(str) {
list.add(str)
}
2-可選和過濾器
Optional.ofNullable(str)
.filter(s -> StringUtils.isNotBlank(s))
.ifPresent(result -> list.add(result));
問題:哪種方法更好,為什么
第一個,因為在第二個中您創建了一個不必要的Optional
但我建議使用isNotEmpty
而不是isNotBlank
:
if(StringUtils.isNotEmpty(str)){
list.add(str)
}
要了解文檔中isNotEmpty
和isNotBlank
之間的區別:
檢查 CharSequence 是否不為空("") 並且不是 null 。
檢查 CharSequence 是否不為空(""),不為 null且不為 whitespace only 。
在您的情況下,您詢問 null 或空,其中isNotEmpty
是適合您情況的正確方法。
更多的附錄:我的投票幾乎立即投給了您的第一個選項。
為什么? 簡單:簡單!
第二個片段只不過是一個變相的 if 語句。 這種偽裝會帶來大量開銷。
您的人類讀者必須查看所有字符,然后他們需要剖析復雜的語句,然后他們需要知道Optional 是如何工作的,以及給定代碼的實際作用。
因此,除了細微的性能差異,正如另一個答案中所述:真正的答案:您應該詢問團隊中的人員。
如果他們都習慣了像這里這樣的Optional
用法,並且他們整天都這樣做,那么,也許更好的風格是選項 2。因為這就是你們所有人每天都在做的事情。 但如果不是,如前所述:我建議 go 使用更簡單的代碼行,任何了解基本 java 的人都可以理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.