【Java】對於空值null的判斷

來源:互聯網
上載者:User

標籤:null   null 指標   java   異常   null 指標異常   

在大型程式開放過程中,無論是SSH還是安卓,都需要對空值進行判斷,尤其是某個實體傳遞過來的值,但是,往往對於null的判斷條件沒寫好,導致null 指標異常。

對於任意的Object,判斷其是否為null,應該將Object xx==null寫在所有判斷條件的前頭,一個為null的東西,調用其自身的任何方法都會出現著名的java.lang.NullPointerExceptionnull 指標異常,包括Object.equals(null)都是會導致null 指標異常的。其實一個為null的東西,它只能執行Object xx==null,其餘任何的方法調用都是會出null 指標異常的。

不過,要注意一點,對於String xx="",xx就不為null了,雖然其值為空白,但是xx此時是經過實體化的對象,其可以調用isEmpty()方法來判斷其是否是"",與String xx=null有根本區別,String xx=null與Object xx=null一樣,都是只能執行Object xx==null,其餘任何的方法調用都是會出null 指標異常的。

用一個程式來說明這個問題,代碼如下:

public class javaNullPointTest {public static void ObjectIsNull(Object object) {// Object的判空// 正確的判空try {if (object == null) {System.out.println("null 指標異常沒有發生,為null");}} catch (NullPointerException e) {System.out.println("object == null不會導致null 指標異常發生");}// 錯誤的判空try {if (object.equals(null)) {System.out.println("null 指標異常沒有發生,為null");}} catch (NullPointerException e) {System.out.println("object.equals(null)導致null 指標異常發生");}}public static void StringIsNull(String string) {// String的判空try {if (string == null) {System.out.println("null 指標異常沒有發生,為null");} else if (string.isEmpty()) {System.out.println("null 指標異常沒有發生,值為空白“”");}} catch (NullPointerException e) {System.out.println("string==null不會null 指標異常發生");}// 錯誤的判空try {if (string.equals(null)) {System.out.println("null 指標異常沒有發生,為null");}} catch (NullPointerException e) {System.out.println("string.equals(null)導致null 指標異常發生");}}public static void main(String[] args) {Object nullObject = null;String nullString1 = "";String nullString2 = null;System.out.println("對於nullObject:");ObjectIsNull(nullObject);System.out.println("對於nullString1:");StringIsNull(nullString1);System.out.println("對於nullString2:");StringIsNull(nullString2);}}

運行結果如下:


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

【Java】對於空值null的判斷

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.