国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java中對null進行強制類型轉換的方法

2024-07-14 08:42:14
字體:
來源:轉載
供稿:網友

今天很好奇,對null進行強轉會不會拋錯。做了如下測試得到的結果是,如果把null強轉給對象,是不會拋異常的,本身對象是可以為null的。但是如果是基本類型,比如 int i = (Integer)obj的強轉,其實內部會調用intvalue方法去賦值給基本類型,所以這時候是會報錯的。

代碼如下

Object obj = null;Integer s1 = (Integer)obj;

上面能正常執行,即把null賦值給一個對象或者強行類型轉換賦值給對象都是沒有問題的。如果s1是 int的基本類型呢?

代碼如下,編譯時不會報錯,但是執行,則報java.lang.NullPointerException錯誤。

int s1 = (Integer)obj;System.out.println(s1);

我們反編譯后會發現調用了在 intValue方法去獲取value,所以拋出空指針錯誤。

反編譯后的代碼:

Object obj = null;int s1 = ((Integer)obj).intValue();System.out.println(s1);

類似的,在有int 與 Integer 互相轉換,即自動拆裝箱的時候,要尤其注意,會不會存在空指針異常。

補充:下面看下java的null類型強轉

java中的null值是可以強制轉換為任何java類型的,就像(String)null是合法的,但null強轉后的是無效對象,其返回值還是為null,但是例如下面這種情況

public class NULL {  public static void main(String[] args) {    ((NULL)null).haha();  }  public static void haha(){    System.out.println("haha");  }}

輸出為

haha

原因是static方法的調用是和類名綁定的,不借助對象進行訪問,所以能夠正確輸出,如果沒有加上static修飾,就會報空指針的錯誤了

總結

以上所述是小編給大家介紹的Java中對null進行強制類型轉換,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿克陶县| 遵义县| 新化县| 金乡县| 绥棱县| 佛学| 蒙阴县| 临猗县| 呈贡县| 西乌珠穆沁旗| 东城区| 宝应县| 普定县| 汉寿县| 法库县| 康平县| 常州市| 叶城县| 岳普湖县| 昂仁县| 白河县| 东阳市| 台江县| 潜山县| 田阳县| 顺平县| 渑池县| 河西区| 潜山县| 太谷县| 化隆| 扎赉特旗| 萨嘎县| 青阳县| 万全县| 德阳市| 九台市| 醴陵市| 周宁县| 中牟县| 什邡市|