<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

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲AV无码成人精品区天堂| 日日操夜夜操免费视频| 亚洲午夜久久久影院伊人| 精品无码专区亚洲| 在线日韩av永久免费观看| 亚洲熟女乱色一区二区三区 | 亚洲一区免费在线观看| 亚洲成年人在线观看| 男人的天堂网免费网站| 亚洲精品无码久久久久去q| a级成人毛片免费视频高清| 亚洲色欲久久久综合网| 精品国产麻豆免费人成网站| 国产成人综合亚洲AV第一页| 欧洲人免费视频网站在线| 亚洲av日韩av无码黑人| 最近免费中文字幕高清大全 | 亚洲精品美女久久777777| 久久午夜无码免费| 亚洲婷婷第一狠人综合精品| 天天天欲色欲色WWW免费| 国产成人亚洲精品91专区高清| 免费人成网站在线高清| sss在线观看免费高清| 亚洲AV永久无码区成人网站 | 国产精品免费综合一区视频| 老子影院午夜伦不卡亚洲| 黑人大战亚洲人精品一区| 久草视频在线免费看| 亚洲一区二区三区四区视频| 国产高清在线免费视频| 亚洲免费一区二区| 亚洲理论在线观看| 国产伦一区二区三区免费| a级毛片毛片免费观看久潮| 亚洲成人黄色网址| 无码专区一va亚洲v专区在线| 免费看无码特级毛片| 激情综合亚洲色婷婷五月APP| 四虎影视在线永久免费看黄| 最新国产乱人伦偷精品免费网站|