Exception:java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
最近開始著手做一個專案,專案環境用的是spring4.2,struts2.3.1,hibernate4.3.0....一切都配置正常,所有的POJO類都佈置好。service層和dao層也抽取了,可是在測試的時候,竟然報以一個錯誤 ,java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType,,,除錯了好久,都沒有找出方法,後來看了woshisap大神的部落格再把問題解決,故貼上大神的程式碼 :
Class<T> entityClass = (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
1 package cn.pconline.prolib.util; 2 import java.lang.reflect.ParameterizedType; 3 import java.lang.reflect.Type; 4 5 public class GenericsUtils { 6 /** 7 * 通過反射,獲得定義Class時宣告的父類的範型引數的型別. 8 * 如public BookManager extends GenricManager<Book> 9 * 10 *@param clazz The class to introspect 11 * @return the first generic declaration, or <code>Object.class</code> if cannot be determined 12 */ 13 public static Class getSuperClassGenricType(Class clazz) { 14 return getSuperClassGenricType(clazz, 0); 15 }16 17 /** 18 * 通過反射,獲得定義Class時宣告的父類的範型引數的型別. 19 * 如public BookManager extends GenricManager<Book> 20 * 21 * @param clazz clazz The class to introspect 22 * @param index the Index of the generic ddeclaration,start from 0. 23 */ 24 public static Class getSuperClassGenricType(Class clazz, int index) throws IndexOutOfBoundsException { 25 26 Type genType = clazz.getGenericSuperclass(); 27 28 if (!(genType instanceof ParameterizedType)) { 29 return Object.class; 30 } 31 32 Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); 33 34 if (index >= params.length || index < 0) { 35 return Object.class; 36 } 37 if (!(params[index] instanceof Class)) { 38 return Object.class; 39 } 40 return (Class) params[index]; 41 } 42 }
最後在需要呼叫的地方鍵入以下程式碼:
Class<T> entityClass = GenericsUtils.getSuperClassGenricType(BasicService.class, 0);
相關推薦
Exception:java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
最近開始著手做一個專案,專案環境用的是spring4.2,struts2.3.1,hibernate4.3.0....一切都配置正常,所有的POJO類都佈置好。service層和dao層也抽取了,可是在測試的時候,竟然報以一個錯誤 ,java.lang.ClassCastException: java.lan
java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
1 package cn.pconline.prolib.util; 2 import java.lang.reflect.ParameterizedType; 3 import java.lang.reflect.Type; 4 5 public class GenericsUtils
java.lang.ClassCastException: xxx.bean.XXX cannot be cast to xxx.bean.YYY
java.lang.ClassCastException: com.hahah.atcrowdfunding.bean.User cannot be cast to com.hahah.atcrowdfunding.bean.Role result寫錯了,應該是re
2類型轉換異常:Exception in thread "main" java.lang.ClassCastException:java.lang.Object cannot be cast to java.lang.Integer
cnblogs color pan rgs main string [] 類型 style public class TestException { public static void main(String[] args) { Object obj
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
protocol lang base arr ava ebs reat rac context 1、錯誤描寫敘述java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Str
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
在開發中,遇到這麼一個錯誤: 報錯的意思: Long 無法轉化成Integer型別. 網上的解釋是: 這裡在Hibernate2.0之前版本list.get(0)返回的是Integer型別.但是在Hibernate3.0以後版本list.ge
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
MySQL更新到8.0.11之後連線資料庫時會報出錯誤 Your login attempt was not successful, try again. Reason: Could not get JDBC Connection; nested exception is java.sql.SQ
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to java.lang.Int
異常:java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to java.lang.Integer 原因:SQL查詢結果為count()統計結果個數,gson返回資料為js
ArrayMap java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Object[]
錯誤堆疊: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Object[] at android.support.v4.util.SimpleArra
關於 java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
今天遇到了這個異常,其實是自己經驗欠缺所致。我是通過mybatis查詢到資料庫傳過來的主鍵,是一個32位的char型別。 程式碼: //查詢總賬表的該組織總賬記錄,包括該條記錄的主鍵id、賬戶餘額DzzZzb zzbInfo = null;Map map = (Map) IbatisSQL.selectO
“無效數字” ;java.lang.Integer cannot be cast to java.lang.String
現在 類型 bsp 字段 ann 不難 esc ger ring 今天頁面上突然查詢不出數據,大致的sql語句是 select xx ,xxx from table a where a.lrmb in ( 6101060033, 6101
java.math.BigDecimal cannot be cast to java.lang.String
bigdecimal BigDecimal表示一個大整數,一般情況下很多整型都有個最大值的,但是有時候我們需要處理一些超過這個最大值的值,這個時候就出現了BigDecimal這樣的類用於表達大數值,這個錯誤應該是類型轉換過程中出現了問題.數據從數據庫中取出的,把數據庫中的整數轉成了BigDecimal 類型
java.lang.Integer cannot be cast to java.lang.String
.com ger 調用 str 覆蓋 方法 pan 解決辦法 ava 錯誤原因是類型轉換! 說Integer 類型不能轉成String類型。 解決辦法: 將錯誤中的(String)強制轉換類型修改為 object.toString()
java.lang.ClassCastException: com.github.pagehelper.PageHelpercannot be cast to org.apache.Intercept
使用pagehelper外掛時出現的異常。 我原先mybatis的配置如下 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Con
Java報錯:java.math.BigDecimal cannot be cast to java.lang.String
從資料庫取count、sum等函式的值需要轉化成Integer的時候出現 java.math.BigDecimal cannot be cast to java.lang.String的報錯 錯誤程式碼: Integer.parseInt((String)map.get("id"
java.lang.String cannot be cast to java.lang.Long at android.app.SharedPreferencesImpl.getLong(Share
今天在開發過程中遇到一個問題:從Git上拉下程式碼後,點選登入程式就崩潰了,而且是必現。貼下列印的Log 打碼的地方是公司程式碼中的包名,不影響顯示問題。 可以看到最關鍵的兩句: java.lang.ClassCastException: java.lang.Str
tomcat java.math.BigDecimal cannot be cast to java.lang.Double
將資料庫中數值型取出儲存到 map<String,Object>中,需要進行數值運算,轉成double型別時丟擲ava.math.BigDecimal cannot be cast to java.lang.Double 解決辦法; 1.轉成string String num
java.lang.Integer cannot be cast to java.lang.String Java int,double向String的轉化和String向int,double的轉換
count=Integer.parseInt( (String)all.get(0)); 執行時報錯:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String 解決方
連接Mysql時出現java.math.BigInteger cannot be cast to java.lang.Long問題
類型 spa integer 一個 lan jar包版本 連接 mysql8 family 今天遇見這樣一個坑。在連接數據庫進行查詢數據時,大家可能會遇見這樣一個問題:java.math.BigInteger cannot be cast to java.lang.Lo
java.lang.String cannot be cast to java.lang.Integer解決辦法
今天寫SSM框架時候,後臺介面報錯,控制檯輸出java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer,如下圖: 報錯原因是因為型別轉換錯誤,不能將String型別轉化成Intege