簡體   English   中英

字符串空白(空或空)檢查:如果結構與 java 8 可選/過濾器

[英]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)
}

要了解文檔中isNotEmptyisNotBlank之間的區別:

檢查 CharSequence 是否不為空("") 並且不是 null

檢查 CharSequence 是否不為空(""),不為 null且不為 whitespace only

在您的情況下,您詢問 null 或空,其中isNotEmpty是適合您情況的正確方法。

更多的附錄:我的投票幾乎立即投給了您的第一個選項。

為什么? 簡單:簡單!

第二個片段只不過是一個變相的 if 語句。 這種偽裝會帶來大量開銷。

您的人類讀者必須查看所有字符,然后他們需要剖析復雜的語句,然后他們需要知道Optional 是如何工作的,以及給定代碼的實際作用。

因此,除了細微的性能差異,正如另一個答案中所述:真正的答案:您應該詢問團隊中的人員。

如果他們都習慣了像這里這樣的Optional用法,並且他們整天都這樣做,那么,也許更好的風格是選項 2。因為這就是你們所有人每天都在做的事情。 但如果不是,如前所述:我建議 go 使用更簡單的代碼行,任何了解基本 java 的人都可以理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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