一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯(lián)系我們 - 廣告服務 - 聯(lián)系電話:
您的當前位置: > 旅游 > > 正文

classcastexception是什么原因造成的?ClassCastException解決方法

來源:三好在線 時間:2023-06-08 10:40:47

classcastexception是什么原因造成的?

ClassCastException是JVM在檢測到兩個類型間轉換不兼容時引發(fā)的運行時異常。此類錯誤通常會終止用戶請求。在執(zhí)行任何子系統(tǒng)的應用程序代碼時都有可能發(fā)生ClassCastException異常。

通過轉換,可以指示Java編譯器將給定類型的變量作為另一種變量來處理。對基礎類型和用戶定義類型都可以轉換。Java語言規(guī)范定義了允許的轉換,其中大多數(shù)可在編譯時進行驗證。

不過,某些轉換還需要運行時驗證。如果在此運行時驗證過程中檢測到不兼容,JVM就會引發(fā)ClassCastException異常。

1.一個類是數(shù)字類,而由于誤操作,錯誤的將數(shù)字類向數(shù)字類轉換改寫成了數(shù)字類向字符串類的轉換,從而產生了異常。

2.大部分原因是因為強制轉換或者是SQL映射時發(fā)生了這個異常。

是因為sql映射出現(xiàn)了問題:

因為sql中返回的是一個 list的實體對象,而接收的則是一個List類型的參數(shù)。

怎么解決?

首先打開我們的開發(fā)工具myeclispe,然后點擊File,選擇New,在點擊Java Project選項來新建個java工程項目。

這里我新建了三個java類。一個是BaiDu類作為父類,一個JingYan類作為子類。還有一個AesTest類是來測試我們結果的。

在BaiDu.java父類中,就定義一個name屬性。在JingYan.java類里,我們是先繼承了BaiDu這個類,然后又定義了個Cname屬性。

代碼如下:

public class BaiDu {

String name = "baidu";

}

public class JingYan extends BaiDu {

String Cname = "jingyan";

}

在AesTest.java類里面寫上測試代碼,代碼如下:

public static void main(String[] args) {

BaiDu baidu = new BaiDu();

JingYan jingyan = new JingYan();

jingyan = (JingYan) baidu;

System.out.println(jingyan);

}

這里注意,把定義的baidu賦值給jingyan,由于類型不一致,所以要進行類型強制轉化,用JingYan這個類來進行強制轉換。

寫好后,就可以執(zhí)行這段代碼了,執(zhí)行發(fā)現(xiàn)報錯java.lang.ClassCastException。報錯的意思就是強制類型轉換異常。

接著,我們在修改下代碼,代碼如下:

public static void main(String[] args) {

BaiDu baidu = new BaiDu();

JingYan jingyan = new JingYan();

baidu = (BaiDu)jingyan;

System.out.println(baidu);

}

這里是把jingyan賦值給baidu,由于類型不一致,所以要進行類型強制轉化,用BaiDu這個類來進行強制轉換,修改好后,再來執(zhí)行,發(fā)現(xiàn)此時可以正常運行,輸出想要的結果。

出現(xiàn)java.lang.ClassCastExceptio錯誤是指類型強制轉換出錯了。當我們用子類對象去強制轉換父類對象就會報錯,或者使用子類對象 = 父類對象,同樣會拋出java.lang.ClassCastException。

例如:jingyan = (JingYan) baidu;或者jingyan=baidu;

都會報錯。

責任編輯:

標簽: classcastexception是什么原因造成的

精彩放送:

新聞聚焦

關于我們 | 聯(lián)系我們 | 投稿合作 | 法律聲明 | 廣告投放

版權所有©2017-2020   太陽信息網京ICP備2021034106號-55

所載文章、數(shù)據僅供參考,使用前務請仔細閱讀網站聲明。本站不作任何非法律允許范圍內服務!

聯(lián)系我們:55 16 53 8 @qq.com

Top 主站蜘蛛池模板: 阿巴嘎旗| 噶尔县| 正蓝旗| 寻甸| 高清| 二连浩特市| 静宁县| 浦江县| 康保县| 藁城市| 鸡东县| 龙游县| 行唐县| 陆川县| 越西县| 新乡市| 西安市| 太康县| 历史| 五河县| 甘孜县| 寿宁县| 延安市| 额尔古纳市| 大名县| 大兴区| 龙岩市| 正安县| 灵山县| 德格县| 新丰县| 分宜县| 西峡县| 东宁县| 华池县| 江安县| 碌曲县| 莱州市| 布拖县| 墨江| 冀州市|