1. 程式人生 > >空指標異常(空物件呼叫成員屬性或者是成員方法,增強for迴圈,自動拆箱)

空指標異常(空物件呼叫成員屬性或者是成員方法,增強for迴圈,自動拆箱)

什麼時候會出現空指標異常?

呼叫一個空物件(null)的成員屬性或者是成員方法的時候回出現空指標異常

演示:

package hello_java;

public class Test {
    public static void main(String[] args) {
       BB bb = null;
       System.out.println(bb.id);
    }
}
class BB{
    public int id;
}


Exception in thread "main" java.lang.NullPointerException
	at hello_java.Test.main(Test.java:6)

 自動拆箱也會發生空指標異常。

為什麼呢?比如下面的這個例子裡面:發生自動拆箱的操作,但是在拆的時候發現null物件,沒有對應的int 值,這個時候報出空指標異常。

演示:

package hello_java;

public class Test {
    public static void main(String[] args) {
        BB bb = new BB();
       Integer i = null;
       bb.print(i);
    }
}
class BB{
    public void print(int i){
        System.out.println(i);
    }
}


Exception in thread "main" java.lang.NullPointerException
	at hello_java.Test.main(Test.java:7)

增強for迴圈也會發生空指標異常

package hello_java;
import java.util.List;
public class Test {
    public static void main(String[] args) {
        List list = null;
        for (Object obj:
             list) {
            System.out.println(obj);
        }
    }
}

Exception in thread "main" java.lang.NullPointerException
	at hello_java.Test.main(Test.java:9)