ClassCastException異常的出現緣由和解決方法

ClassCastException是JVM在檢測到兩個類型間轉換不兼容時引起的運行時異常。此類錯誤一般會終止用戶請求。在執行任何子系統的應用程序代碼時都有可能發生ClassCastException異常。經過轉換,能夠指示Java編譯器將給定類型的變量做爲另外一種變量來處理。對基礎類型和用戶定義類型均可以轉換。Java語言規範定義了容許的轉換,其中大多數可在編譯時進行驗證。不過,某些轉換還須要運行時驗證。若是在此運行時驗證過程當中檢測到不兼容,JVM就會引起ClassCastException異常。
出現這個異常的緣由以下:
1.一個類是數字類,而因爲誤操做,錯誤的將數字類向數字類轉換改寫成了數字類向字符串類的轉換,從而產生了異常。
2.大部分緣由是由於強制轉換或者是SQL映射時發生了這個異常。
而我遇到的問題是:mysql

1461:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '0x4c1ae77bc2df45fb68b13fa1b4f000305209b0cb' for key 'contract_address'

是由於sql映射出現了問題:
這是出問題的SQL
這個是interface中
由於sql中返回的是一個 list的實體對象,而接收的則是一個List類型的參數。
雖然查詢的時候沒有報錯,可是後續的時候遍歷查找出來的結果就出錯了。只要改爲以下就能夠了,一個很是大意的錯誤
這裏寫圖片描述
這樣就能夠了。web