業務參數判空和判斷null

來源:互聯網
上載者:User
null的問題:

JAVA類型有基礎變數類型、參考型別。

(1)對基礎變數類型,如果未經初始化JAVA會自動開闢空間並賦值。int、byte、short、long為0;float、double為0.0;boolean為false
(2)對引用變數類型,JAVA同樣會對未經初始化的變數自動賦值,為NULL
(因為NULL指的是不確定對象,所以適用於參考型別,不適用於基礎變數類型。)

再說NullPointerException異常
指標,就是java中的對象的引用。比如String a;這個a就是指標。
null 指標NullPointer,指標的內容為空白,比如指標a,如果令它指向null,就是null 指標。
null 指標異常NullPointerException,一個指標為NULL。本身對象就為空白了,沒有方法給你調用,你在使用該對象的方法,就強人所難了。再說未經初始化的變數JAVA會自動報錯。比如String a=null,你還要用a的方法,比如a.equals( String x);那就會產生null 指標異常。
項目中遇到很多了NullPointerException問題,大致一下集中情況:

(1)定義了一個對象引用,但是沒有new 直接拿過來使用。比如String a = null,List list = null;
(2) 沒有考慮是否為空白,直接擷取或者返回的對象為空白。直接使用該對象。 空問題:

空值一般是指對象的參數值為空白字串,比如,obj.value=”;而null一般是指對象為空白,即obj = null;

一個對象為null,肯定取不到它的所有參數值;若對象不為空白,取到它的某個參數的值也可能為空白的。
比如,

User user1 = null;user1.getId()=null//記錄不存在User user2 = new User();user2.getId()=''//記錄存在,但是值為空白
項目中的重用判斷:

(1)String
類型不為null和空

if (Utils.isEmpty(strParentId) {            throw new Exception("參數不可為空。");        }

源碼:

public static boolean isEmpty(String value) {        if (value == null || value.isEmpty()) {            return true;        }        return false;}   public boolean isEmpty() {        return value.length == 0;    }

(2)整型Integer

if (id == null) {            throw new Exception("參數不可為空。");        }

這裡我就習慣用了“”.quals(id)去判空,被team笑了小半年。整型不需要”“.equal(id),整型是不可為空的。項目中使用了Integer類型,Integer是包括基本類型int的封裝類,不給賦值的時候為null。而int基本類型初始化是不為空白的。兩種情況加起來,integer只需要判斷null值就可以。

(3)list類型不為空白

if (CollectionUtils.isEmpty(list)) {    throw new Exception("參數異常。");}

源碼:

    public static boolean isEmpty(Collection<?> collection) {            return (collection == null || collection.isEmpty());    }      public boolean isEmpty() {            return size() == 0;        }

(3)map不為空白

if (CollectionUtils.isEmpty(existMap)) {}if (existMap.isEmpty()) {    //這種也會報錯。}

推薦一篇文章:
http://blog.csdn.net/revivedsun/article/details/46581691

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.