欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中對null進行強制類型轉(zhuǎn)換的方法

 更新時間:2018年09月05日 10:52:34   作者:Asa_Prince  
小編對null進行強轉(zhuǎn)會不會拋錯,非常的好奇,下面小編通過實例代碼給大家介紹Java中對null進行強制類型轉(zhuǎn)換的方法,感興趣的朋友參考下吧

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

代碼如下

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

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

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

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

我們反編譯后會發(fā)現(xiàn)調(diào)用了在 intValue方法去獲取value,所以拋出空指針錯誤。

反編譯后的代碼:

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

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

補充:下面看下java的null類型強轉(zhuǎn)

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

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

輸出為

haha

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

總結(jié)

以上所述是小編給大家介紹的Java中對null進行強制類型轉(zhuǎn)換,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Spring MVC+MyBatis+MySQL實現(xiàn)分頁功能實例

    Spring MVC+MyBatis+MySQL實現(xiàn)分頁功能實例

    分頁功能是我們?nèi)粘i_發(fā)中經(jīng)常會遇到的,下面這篇文章主要給大家介紹了Spring MVC+MyBatis+MySQL實現(xiàn)分頁功能的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • springboot中的css樣式顯示不出了的幾種情況

    springboot中的css樣式顯示不出了的幾種情況

    這篇文章主要介紹了springboot中的css樣式顯示不出了的幾種情況,具有很好的的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • SpringBoot視圖解析實現(xiàn)原理深入分析

    SpringBoot視圖解析實現(xiàn)原理深入分析

    視圖解析其實就是SpringBoot某一個controller的方法執(zhí)行完成之后,它是跳轉(zhuǎn)到那個頁面。由于我們springboot項目默認打包為jar包,是形成壓縮包的形式,而jsp又不支持壓縮,所以我們SpringBoot不知JSP的,需要引入第三方模板引擎才可以處理
    2022-10-10
  • mybatis雙重foreach如何實現(xiàn)遍歷map中的兩個list數(shù)組

    mybatis雙重foreach如何實現(xiàn)遍歷map中的兩個list數(shù)組

    本文介紹了如何解析前端傳遞的JSON字符串并在Java后臺動態(tài)構(gòu)建SQL查詢條件,首先,通過JSONArray.fromObject()將JSON字符串轉(zhuǎn)化為JSONArray對象,遍歷JSONArray,從中提取name和infos,構(gòu)建成Map對象用于Mybatis SQL映射
    2024-09-09
  • Java將RTF轉(zhuǎn)換為PDF格式的實現(xiàn)

    Java將RTF轉(zhuǎn)換為PDF格式的實現(xiàn)

    本文主要介紹了Java將RTF轉(zhuǎn)換為PDF格式的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 詳解spring-cloud與netflixEureka整合(注冊中心)

    詳解spring-cloud與netflixEureka整合(注冊中心)

    這篇文章主要介紹了詳解spring-cloud與netflixEureka整合(注冊中心),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • JAVA設(shè)計模式之單例模式詳解

    JAVA設(shè)計模式之單例模式詳解

    大家好,本篇文章主要講的是JAVA設(shè)計模式之單例模式詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • SpringMVC全局異常處理的三種方式

    SpringMVC全局異常處理的三種方式

    這篇文章主要介紹了SpringMVC全局異常處理的三種方式,幫助大家更好的理解和使用springmvc,感興趣的朋友可以了解下
    2021-01-01
  • 線程池調(diào)用kafka發(fā)送消息產(chǎn)生的內(nèi)存泄漏問題排查解決

    線程池調(diào)用kafka發(fā)送消息產(chǎn)生的內(nèi)存泄漏問題排查解決

    這篇文章主要為大家介紹了線程池調(diào)用kafka發(fā)送消息產(chǎn)生的內(nèi)存泄漏問題排查解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Springboot?maven項目配置文件覆蓋問題的處理

    Springboot?maven項目配置文件覆蓋問題的處理

    這篇文章主要介紹了Springboot?maven項目配置文件覆蓋問題的處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評論