在Java中如何避免“!=null”式的判空語句?

KK夜枚廝


null:是一個空對象,不能進行任何操作除了=、==,這個問題我們從三個方面來分析。

一、基本數據類型上

我們來區分下以下三個的區別:

String s1 = null;// null是未分配堆內存空間

String s2;// 分配了內存空間,沒存入任何對象

String s3 = "";// 分配了內存空間,存入了一個字符串對象,這種我們可以使用 object.equals(object)

注:當是""時,我們可以使用spring的方法 判斷字符串是否為空:SpringUtils.isEmpty("xxx"),判斷集合是否為空:CollectionUtils.isEmpty("xxx");

在Java中,默認在使用一個變量的時候必須賦予它初值(降低風險)。

二、集合類型

當返回是一個集合例如list的時候,如果查詢的數據是空,我們返回一個空的集合而不是返回null,這樣方法判斷時候就可以用list.size()判斷而不是 != null判斷,養成良好的編碼習慣。

三、方法調用上,我們使用聲明多個方法,通過參數來判斷。

歡迎大家關注我,後續會陸續的發佈技術類文章。

以下為springcloud的文章,歡迎大家賞閱

https://m.toutiaocdn.cn/group/6667809327488696845/?iid=65758228937&app=news_article×tamp=1552544524&group_id=6667809327488696845


程序員遇見更好的自己


java8裡有專門針對判空的方法了,Objects.isNull(obj),Objects.nonNull(obj)。

另外java8之前都是用各種Util工具包,比如common lang3等進行判斷。

再一個,java8的Optional類,在返回任何有可能為空的值時儘量用Optional類來進行包裝,返回Optional對象,調用者拿到的返回值是optional對象,optional提供一系列的方法來優雅的處理空、異常等情況。


一隻好奇的貓


使用  Java 8 的新特性 Optional 類型,具體可以看看官方文檔


doubeCharli


guava中有針對null的優雅處理


編程之智


寫個通用函數,判斷是否為null。以後就用這個函數來判斷即可。


分享到:


相關文章: