<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

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


    網站導航:
     
    主站蜘蛛池模板: 人与禽交免费网站视频| 99久久综合精品免费| www国产亚洲精品久久久| 国产 亚洲 中文在线 字幕| 免费看污成人午夜网站| 亚洲午夜精品一区二区公牛电影院 | 亚洲熟妇无码一区二区三区 | 国产精品无码一二区免费| 亚洲日韩乱码中文字幕| 日韩午夜免费视频| 黄色a级免费网站| av在线亚洲欧洲日产一区二区| 国产免费人成视频尤勿视频| 亚洲日韩乱码中文无码蜜桃臀网站| 成人无码区免费A∨直播| 亚洲精品乱码久久久久久按摩| 久久免费精彩视频| 精品亚洲456在线播放| 国产一级高清免费观看| 国产va免费观看| 亚洲国产第一页www| 性做久久久久久久免费看| 亚洲av日韩专区在线观看| 亚洲人成色77777在线观看大| 久久99精品免费视频| 亚洲免费视频观看| 国产一级做a爱免费视频| 成人片黄网站色大片免费观看cn| 亚洲视频在线观看免费| 久久电影网午夜鲁丝片免费| 色妞www精品视频免费看| 久久久综合亚洲色一区二区三区| 免费观看美女用震蛋喷水的视频| 国产偷国产偷亚洲清高APP| 怡红院亚洲怡红院首页| 青青在线久青草免费观看| xxxxxx日本处大片免费看| 2022年亚洲午夜一区二区福利| 国产免费怕怕免费视频观看| 一个人免费视频在线观看www| 国产91在线|亚洲|