<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, 評(píng)論 - 11, 引用 - 0
    數(shù)據(jù)加載中……

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

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

    出現(xiàn):
    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      * 通過(guò)反射,獲得定義Class時(shí)聲明的父類的范型參數(shù)的類型.   
     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      * 通過(guò)反射,獲得定義Class時(shí)聲明的父類的范型參數(shù)的類型.   
    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) 評(píng)論(4)  編輯  收藏

    評(píng)論

    # re: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType[未登錄](méi)  回復(fù)  更多評(píng)論   

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

    # re: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType[未登錄](méi)  回復(fù)  更多評(píng)論   

    @小熊

    樓上的,沒(méi)看懂!樓主是拿泛型的Class類型。
    沒(méi)文化,等你到了這個(gè)層次,你就會(huì)理解。好好看多點(diǎn)架構(gòu)方面的吧。

    2013-03-07 11:57 | peter

    # re: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType  回復(fù)  更多評(píng)論   

    很對(duì)!
    2013-05-21 18:43 | yenshi

    # re: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType  回復(fù)  更多評(píng)論   

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

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 美女视频黄a视频全免费网站一区| 国产精品亚洲片在线| 亚洲网站在线播放| 无码人妻一区二区三区免费看| 国产亚洲成人在线播放va| 毛片基地看看成人免费| 亚洲精品无码久久久影院相关影片 | 猫咪免费人成网站在线观看入口| 免费国产成人高清视频网站| 老子影院午夜伦不卡亚洲| 免费中文字幕在线| 久久久久久久国产免费看| 老司机亚洲精品影视www| 免费看搞黄视频网站| 中文字幕亚洲免费无线观看日本| 91在线手机精品免费观看| 亚洲一区免费在线观看| 麻豆成人精品国产免费| 视频免费1区二区三区| 亚洲中文字幕无码一区| 97视频免费观看2区| 亚洲一区精彩视频| 免费一级毛片正在播放| 东方aⅴ免费观看久久av| 亚洲精品高清国产麻豆专区| 女人18毛片水真多免费播放| 理论片在线观看免费| 亚洲AV无码日韩AV无码导航| 性xxxxx免费视频播放| 另类图片亚洲校园小说区| 亚洲成A人片在线观看无码不卡| 久久w5ww成w人免费| 亚洲国产精品成人AV在线| jlzzjlzz亚洲乱熟在线播放| 99re免费99re在线视频手机版| 一本天堂ⅴ无码亚洲道久久| 红杏亚洲影院一区二区三区| 麻豆视频免费播放| 一级做a毛片免费视频| 亚洲男人天堂影院| 亚洲第一页综合图片自拍|