classcastexception是jvm在檢測到兩個類型間轉換不兼容時引發的運行時異常。此類錯誤通常會終止用戶請求。在執行任何子系統的應用程序代碼時都有可能發生classcastexception異常。通過轉換,可以指示java編譯器將給定類型的變量作為另一種變量來處理。對基礎類型和用戶定義類型都可以轉換。java語言規范定義了允許的轉換,其中大多數可在編譯時進行驗證。不過,某些轉換還需要運行時驗證。如果在此運行時驗證過程中檢測到不兼容,jvm就會引發classcastexception異常。
出現這個異常的原因如下:
1.一個類是數字類,而由于誤操作,錯誤的將數字類向數字類轉換改寫成了數字類向字符串類的轉換,從而產生了異常。
2.大部分原因是因為強制轉換或者是sql映射時發生了這個異常。
而我遇到的問題是:
1
|
1461 :com.mysql.jdbc.exceptions.jdbc4.mysqlintegrityconstraintviolationexception: duplicate entry '0x4c1ae77bc2df45fb68b13fa1b4f000305209b0cb' for key 'contract_address' |
是因為sql映射出現了問題:
因為sql中返回的是一個 list的實體對象,而接收的則是一個list類型的參數。
雖然查詢的時候沒有報錯,但是后續的時候遍歷查找出來的結果就出錯了。只要改成如下就可以了,一個非常大意的錯誤!
這樣就可以了。
到此這篇關于java classcastexception異常解決方案的文章就介紹到這了,更多相關java classcastexception異常內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/zgz15515397650/article/details/81068723