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

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

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

通常我們?cè)?OOP 設(shè)計(jì)中都會(huì)使用到繼承。

Java 繼承關(guān)系中的 java.lang.ClassCastException 錯(cuò)誤_java

??但是在繼承對(duì)象之間的強(qiáng)制轉(zhuǎn)換可能會(huì)遇到??java.lang.ClassCastException??異常的錯(cuò)誤。

錯(cuò)誤的日志如下:

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 繼承關(guān)系中的 java.lang.ClassCastException 錯(cuò)誤_父類(lèi)_02

??問(wèn)題和原因

這個(gè)問(wèn)題出現(xiàn)的原因就是繼承類(lèi)之間強(qiáng)制轉(zhuǎn)換的錯(cuò)誤。

同時(shí)這個(gè)錯(cuò)誤是運(yùn)行時(shí)錯(cuò)誤,不是編譯錯(cuò)誤,因此你編譯的時(shí)候是沒(méi)有這個(gè)錯(cuò)誤的。

考察下面的代碼:

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

采用該方法不能實(shí)現(xiàn)對(duì)象類(lèi)型由超類(lèi)向子類(lèi)的轉(zhuǎn)換。

上面的原因是父類(lèi)的對(duì)象是由父類(lèi)創(chuàng)建的,然后你嘗試將父類(lèi)創(chuàng)建的對(duì)象強(qiáng)制轉(zhuǎn)換到子類(lèi)中。

因?yàn)楦割?lèi)創(chuàng)建的對(duì)象和子類(lèi)需要?jiǎng)?chuàng)建的對(duì)象分別使用不同的地址空間,那在轉(zhuǎn)換的時(shí)候?qū)?huì)出現(xiàn)地址空間引用的錯(cuò)誤,因此 JVM 會(huì)認(rèn)為你將 2 個(gè)完全不同類(lèi)型的對(duì)象進(jìn)行轉(zhuǎn)換,這個(gè)時(shí)候出現(xiàn)上面的運(yùn)行時(shí)錯(cuò)誤。

要解決這個(gè)問(wèn)題的辦法就是在創(chuàng)建父類(lèi)的時(shí)候使用子類(lèi)來(lái)創(chuàng)建,并且強(qiáng)制將創(chuàng)建的父類(lèi)轉(zhuǎn)換為子類(lèi)就可以了。

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

將上面的語(yǔ)句改成:

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

就可以了。

總結(jié)

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

相關(guān)文章

  • IntelliJIDEA中實(shí)現(xiàn)SpringBoot多實(shí)例運(yùn)行的兩種方式

    IntelliJIDEA中實(shí)現(xiàn)SpringBoot多實(shí)例運(yùn)行的兩種方式

    在微服務(wù)開(kāi)發(fā)中,經(jīng)常需要同時(shí)啟動(dòng)多個(gè)服務(wù)實(shí)例進(jìn)行測(cè)試或模擬集群環(huán)境,?IntelliJ?IDEA?作為Java開(kāi)發(fā)者常用工具,提供了靈活的多實(shí)例啟動(dòng)支持,本文將詳細(xì)介紹如何通過(guò)修改配置?和批量啟動(dòng)?兩種方式實(shí)現(xiàn)SpringBoot多實(shí)例運(yùn)行,并解決常見(jiàn)問(wèn)題,需要的朋友可以參考下
    2025-03-03
  • 新手入門(mén)學(xué)習(xí)Spring Freemarker教程解析

    新手入門(mén)學(xué)習(xí)Spring Freemarker教程解析

    這篇文章主要介紹了新手入門(mén)學(xué)習(xí)Freemarker教程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java注解如何基于Redission實(shí)現(xiàn)分布式鎖

    Java注解如何基于Redission實(shí)現(xiàn)分布式鎖

    這篇文章主要介紹了Java注解如何基于Redission實(shí)現(xiàn)分布式鎖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • spring boot入門(mén)開(kāi)始你的第一個(gè)應(yīng)用

    spring boot入門(mén)開(kāi)始你的第一個(gè)應(yīng)用

    這篇文章主要介紹了spring boot入門(mén)開(kāi)始你的第一個(gè)應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • java dump文件怎么生成和分析-JMAP用法詳解

    java dump文件怎么生成和分析-JMAP用法詳解

    這篇文章主要介紹了java dump文件怎么生成和分析-JMAP用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 工具類(lèi)之關(guān)于RestTemplateUtil工具類(lèi)的使用

    工具類(lèi)之關(guān)于RestTemplateUtil工具類(lèi)的使用

    這篇文章主要介紹了工具類(lèi)之關(guān)于RestTemplateUtil工具類(lèi)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • IntelliJ IDEA創(chuàng)建maven多模塊項(xiàng)目(圖文教程)

    IntelliJ IDEA創(chuàng)建maven多模塊項(xiàng)目(圖文教程)

    這篇文章主要介紹了IntelliJ IDEA創(chuàng)建maven多模塊項(xiàng)目(圖文教程),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-09-09
  • Maven項(xiàng)目中將本地依賴(lài)庫(kù)打包到最終的JAR中的實(shí)現(xiàn)

    Maven項(xiàng)目中將本地依賴(lài)庫(kù)打包到最終的JAR中的實(shí)現(xiàn)

    本文主要介紹了Maven項(xiàng)目中將本地依賴(lài)庫(kù)打包到最終的JAR中的實(shí)現(xiàn),將本地依賴(lài)安裝到Maven本地倉(cāng)庫(kù),可以避免使用system作用域帶來(lái)的不可移植性和打包問(wèn)題,感興趣的可以了解一下
    2025-05-05
  • Java對(duì)異常的認(rèn)識(shí)與異常的處理小結(jié)

    Java對(duì)異常的認(rèn)識(shí)與異常的處理小結(jié)

    Java程序在運(yùn)行時(shí)可能出現(xiàn)的錯(cuò)誤或非正常情況稱(chēng)為異常,下面給大家介紹Java對(duì)異常的認(rèn)識(shí)與異常的處理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-06-06
  • java字符串遍歷以及統(tǒng)計(jì)字符串中各類(lèi)字符

    java字符串遍歷以及統(tǒng)計(jì)字符串中各類(lèi)字符

    這篇文章主要為大家詳細(xì)介紹了java字符串遍歷以及字符串中各類(lèi)字符統(tǒng)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評(píng)論