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

Java中java.lang.ClassCastException異常原因及解決方法

 更新時間:2022年01月24日 10:39:26   作者:HoneyMoose  
大家好,本篇文章主要講的是Java中java.lang.ClassCastException異常原因及解決方法,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下

通常我們在 OOP 設計中都會使用到繼承。

Java 繼承關系中的 java.lang.ClassCastException 錯誤_java

??但是在繼承對象之間的強制轉換可能會遇到??java.lang.ClassCastException??異常的錯誤。

錯誤的日志如下:

19:58:25.010 [http-nio-8080-exec-5] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.ClassCastException: class com.ossez.usreio.mls.common.models.response.ListingResponse cannot be cast to class com.ossez.usreio.mls.common.models.response.ListingDetailResponse (com.ossez.usreio.mls.common.models.response.ListingResponse and com.ossez.usreio.mls.common.models.response.ListingDetailResponse are in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader @4ee285c6)] with root cause
java.lang.ClassCastException: class com.ossez.usreio.mls.common.models.response.ListingResponse cannot be cast to class com.ossez.usreio.mls.common.models.response.ListingDetailResponse (com.ossez.usreio.mls.common.models.response.ListingResponse and com.ossez.usreio.mls.common.models.response.ListingDetailResponse are in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader @4ee285c6)

Java 繼承關系中的 java.lang.ClassCastException 錯誤_父類_02

??問題和原因

這個問題出現(xiàn)的原因就是繼承類之間強制轉換的錯誤。

同時這個錯誤是運行時錯誤,不是編譯錯誤,因此你編譯的時候是沒有這個錯誤的。

考察下面的代碼:

Parent b = new parent();
Child c = (Child) b ;

采用該方法不能實現(xiàn)對象類型由超類向子類的轉換。

上面的原因是父類的對象是由父類創(chuàng)建的,然后你嘗試將父類創(chuàng)建的對象強制轉換到子類中。

因為父類創(chuàng)建的對象和子類需要創(chuàng)建的對象分別使用不同的地址空間,那在轉換的時候將會出現(xiàn)地址空間引用的錯誤,因此 JVM 會認為你將 2 個完全不同類型的對象進行轉換,這個時候出現(xiàn)上面的運行時錯誤。

要解決這個問題的辦法就是在創(chuàng)建父類的時候使用子類來創(chuàng)建,并且強制將創(chuàng)建的父類轉換為子類就可以了。

使用這種創(chuàng)建方法就能保證使用相同的地址空間。

將上面的語句改成:

Parent b = new Child ();
Child c = (Child) b ;

就可以了。

總結

到此這篇關于Java中java.lang.ClassCastException異常原因及解決方法的文章就介紹到這了,更多相關java.lang.ClassCastException異常內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot安全認證Security的實現(xiàn)方法

    SpringBoot安全認證Security的實現(xiàn)方法

    這篇文章主要介紹了SpringBoot安全認證Security的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Java學生信息類繼承與接口的原理及使用方式

    Java學生信息類繼承與接口的原理及使用方式

    這篇文章主要介紹了Java學生信息類繼承與接口的原理及使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • SpringCloud使用Feign實現(xiàn)遠程調用流程詳細介紹

    SpringCloud使用Feign實現(xiàn)遠程調用流程詳細介紹

    OpenFeign源于Netflix的Feign,是http通信的客戶端。屏蔽了網(wǎng)絡通信的細節(jié),直接面向接口的方式開發(fā),讓開發(fā)者感知不到網(wǎng)絡通信細節(jié)。所有遠程調用,都像調用本地方法一樣完成
    2023-02-02
  • 使用java的Calendar對象獲得當前日期

    使用java的Calendar對象獲得當前日期

    本文給大家分享的是使用使用java的Calendar對象獲得當前日期的上幾個度開始、結束時間,主要思路是先獲得當前季度的開始和結束日期,在當前日期的基礎上往前推3個月即上個季度的開始和結束日期,十分的實用,小伙伴們可以參考下。
    2015-07-07
  • Spring?Security中如何獲取AuthenticationManager對象

    Spring?Security中如何獲取AuthenticationManager對象

    有時需要使用AuthenticationManager(以下簡稱Manager)對象,可是這個對象不是Bean,沒有直接保存在Spring的Bean庫中,那么如何獲取Spring Security中的這個對象呢,需要的朋友可以參考下
    2022-11-11
  • Spring 開發(fā)之組件賦值的實現(xiàn)方法

    Spring 開發(fā)之組件賦值的實現(xiàn)方法

    這篇文章主要介紹了Spring 開發(fā)之組件賦值的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Spring使用IOC與DI實現(xiàn)完全注解開發(fā)

    Spring使用IOC與DI實現(xiàn)完全注解開發(fā)

    IOC也是Spring的核心之一了,之前學的時候是采用xml配置文件的方式去實現(xiàn)的,后來其中也多少穿插了幾個注解,但是沒有說完全采用注解實現(xiàn)。那么這篇文章就和大家分享一下,全部采用注解來實現(xiàn)IOC + DI
    2022-09-09
  • Elasticsearch配置文件選項作用詳解(es7)

    Elasticsearch配置文件選項作用詳解(es7)

    這篇文章主要為大家介紹了Elasticsearch配置文件選項作用詳解(es7),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Java實現(xiàn)簡單的聊天室功能

    Java實現(xiàn)簡單的聊天室功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單的聊天室功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 一文帶你了解Java中的SPI機制

    一文帶你了解Java中的SPI機制

    SPI 全稱是 Service Provider Interface,是一種 JDK 內置的動態(tài)加載實現(xiàn)擴展點的機制,本文主要為大家介紹了SPI機制的原理與使用,需要的可以參考一下
    2023-04-04

最新評論