Java ClassCastException異常解決方案
ClassCastException是JVM在檢測(cè)到兩個(gè)類型間轉(zhuǎn)換不兼容時(shí)引發(fā)的運(yùn)行時(shí)異常。此類錯(cuò)誤通常會(huì)終止用戶請(qǐng)求。在執(zhí)行任何子系統(tǒng)的應(yīng)用程序代碼時(shí)都有可能發(fā)生ClassCastException異常。通過轉(zhuǎn)換,可以指示Java編譯器將給定類型的變量作為另一種變量來處理。對(duì)基礎(chǔ)類型和用戶定義類型都可以轉(zhuǎn)換。Java語言規(guī)范定義了允許的轉(zhuǎn)換,其中大多數(shù)可在編譯時(shí)進(jìn)行驗(yàn)證。不過,某些轉(zhuǎn)換還需要運(yùn)行時(shí)驗(yàn)證。如果在此運(yùn)行時(shí)驗(yàn)證過程中檢測(cè)到不兼容,JVM就會(huì)引發(fā)ClassCastException異常。 出現(xiàn)這個(gè)異常的原因如下:
1.一個(gè)類是數(shù)字類,而由于誤操作,錯(cuò)誤的將數(shù)字類向數(shù)字類轉(zhuǎn)換改寫成了數(shù)字類向字符串類的轉(zhuǎn)換,從而產(chǎn)生了異常。
2.大部分原因是因?yàn)閺?qiáng)制轉(zhuǎn)換或者是SQL映射時(shí)發(fā)生了這個(gè)異常。
而我遇到的問題是:
1461:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ’0x4c1ae77bc2df45fb68b13fa1b4f000305209b0cb’ for key ’contract_address’
是因?yàn)閟ql映射出現(xiàn)了問題:
因?yàn)閟ql中返回的是一個(gè) list的實(shí)體對(duì)象,而接收的則是一個(gè)List類型的參數(shù)。 雖然查詢的時(shí)候沒有報(bào)錯(cuò),但是后續(xù)的時(shí)候遍歷查找出來的結(jié)果就出錯(cuò)了。只要改成如下就可以了,一個(gè)非常大意的錯(cuò)誤!
這樣就可以了。
到此這篇關(guān)于Java ClassCastException異常解決方案的文章就介紹到這了,更多相關(guān)Java ClassCastException異常內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
