對null進行強轉會不會拋錯。測試結果是,如果把null強轉給對象,是不會拋異常的,因為本身對象是可以為null的。但是如果是基本類型,比如 int i = (Integer)obj的強轉,其實內部會調用intvalue方法去賦值給基本類型,所以這時候是會報錯的。
代碼如下
1 Object obj = null; 2 Integer s1 = (Integer)obj;
上面能正常執行,即把null賦值給一個對象或者強行類型轉換賦值給對象都是沒有問題的。如果s1是 int的基本類型呢?
代碼如下,編譯時不會報錯
1 int s1 = (Integer)obj; 2 System.out.println(s1);
執行,則報java.lang.NullPointerException錯誤
1 Object obj = null; 2 int s1 = ((Integer)obj).intValue(); 3 System.out.println(s1);