<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    leisure

    JAVA - exceed,helloworld
    隨筆 - 50, 文章 - 0, 評論 - 11, 引用 - 0
    數據加載中……

    java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

    獲取泛型參數的類型
            
    Class<TentityClass = (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];

    出現:
    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 {  
     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<TentityClass = GenericsUtils.getSuperClassGenricType(BasicService.class0);

    posted on 2011-12-26 14:37 leisure 閱讀(17898) 評論(4)  編輯  收藏

    評論

    # re: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType[未登錄]  回復  更多評論   

    BasicService.class,不就是我需要的類型嗎?你Y的相當于脫了褲子放屁一樣,傳入某類型對象又獲取某類型對象,有意義嗎?
    2013-02-05 15:47 | 小熊

    # re: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType[未登錄]  回復  更多評論   

    @小熊

    樓上的,沒看懂!樓主是拿泛型的Class類型。
    沒文化,等你到了這個層次,你就會理解。好好看多點架構方面的吧。

    2013-03-07 11:57 | peter

    # re: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType  回復  更多評論   

    很對!
    2013-05-21 18:43 | yenshi

    # re: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType  回復  更多評論   

    還是不成功咋辦
    2013-09-25 12:42 | txy779

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品高清免费网站| 在线观看亚洲专区| 久9这里精品免费视频| 国产成人亚洲精品91专区手机| 蜜桃传媒一区二区亚洲AV| 香蕉高清免费永久在线视频| 亚洲成av人片在线天堂无| 免费黄色大片网站| 成人精品国产亚洲欧洲| 亚洲人妻av伦理| 日本三级在线观看免费| 久久亚洲精精品中文字幕| 最近中文字幕完整免费视频ww | 亚洲中久无码不卡永久在线观看| 一级A毛片免费观看久久精品| 亚洲午夜久久久影院伊人| 久久久久成人精品免费播放动漫| 亚洲大香人伊一本线| 成年在线观看网站免费| 亚洲av成人片在线观看| 国产亚洲美日韩AV中文字幕无码成人 | 日韩毛片免费一二三| 亚洲日韩精品射精日| 外国成人网在线观看免费视频| 亚洲成人黄色网址| 国产精品无码素人福利免费| 一本到卡二卡三卡免费高| 午夜亚洲www湿好大| A在线观看免费网站大全| 美美女高清毛片视频黄的一免费| 亚洲色爱图小说专区| 亚洲人成免费电影| 豆国产96在线|亚洲| 久久久久亚洲AV片无码| 免费国产作爱视频网站| 色www免费视频| 亚洲视频免费一区| www国产亚洲精品久久久日本| 国产精品99久久免费观看| 亚洲色少妇熟女11p| 亚洲av无码成h人动漫无遮挡 |