空指標異常(空物件呼叫成員屬性或者是成員方法,增強for迴圈,自動拆箱)
阿新 • • 發佈:2018-11-15
什麼時候會出現空指標異常?
呼叫一個空物件(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)