您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Optional.ofNullable如何處理空指針,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
對于 Integer 的判空,可以使用 Optional.ofNullable 來構造一個 Optional,
然后使用 orElse(0) 把 null 替換為默認值再進行 +1 操作。
對于 String 和字面量的比較,可以把字面量放在前面,
比如"OK".equals(s),這樣即使 s 是 null 也不會出現空指針異常;
而對于兩個可能為 null 的字符串變量的 equals 比較,
可以使用 Objects.equals,它會做判空處理。
對于 ConcurrentHashMap,既然其 Key 和 Value 都不支持 null,修復方式就是不要把 null 存進去。
HashMap 的 Key 和 Value 可以存入 null,
而 ConcurrentHashMap 看似是 HashMap 的線程安全版本,卻不支持 null 值的 Key 和 Value,
這是容易產生誤區的一個地方。
對于類似 fooService.getBarService().bar().equals(“OK”) 的級聯調用,
需要判空的地方有很多,包括 fooService、getBarService() 方法的返回值,以及 bar 方法返回的字符串。
如果使用 if-else 來判空的話可能需要好幾行代碼,
但使用 Optional 的話一行代碼就夠了。
對于 rightMethod 返回的 List,
由于不能確認其是否為 null,
所以在調用 size 方法獲得列表大小之前,同樣可以使用 Optional.ofNullable 包裝一下返回值,
然后通過.orElse(Collections.emptyList()) 實現在 List 為 null 的時候獲得一個空的 List,最后再調用 size 方法。
關于“Optional.ofNullable如何處理空指針”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。