<form id="dlljd"></form>
        <address id="dlljd"><address id="dlljd"><listing id="dlljd"></listing></address></address>

        <em id="dlljd"><form id="dlljd"></form></em>

          <address id="dlljd"></address>
            <noframes id="dlljd">

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

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

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

              classcastexception是什么原因造成的?

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

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

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

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

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

              是因為sql映射出現了問題:

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

              怎么解決?

              首先打開我們的開發工具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這個類來進行強制轉換。

              寫好后,就可以執行這段代碼了,執行發現報錯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這個類來進行強制轉換,修改好后,再來執行,發現此時可以正常運行,輸出想要的結果。

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

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

              都會報錯。

              責任編輯:

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

              精彩放送:

              新聞聚焦

              關于我們 | 聯系我們 | 投稿合作 | 法律聲明 | 廣告投放

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

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

              聯系我們:55 16 53 8 @qq.com

              Top 中文字幕在线观看亚洲日韩