<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)航:
     
    主站蜘蛛池模板: 亚洲最大中文字幕| 精品免费久久久久国产一区| 亚洲国产激情一区二区三区| GOGOGO免费观看国语| 亚洲国语在线视频手机在线| 免费一级特黄特色大片在线| 久久国产精品免费视频| 无码国产精品一区二区免费式影视| 亚洲AV永久无码精品水牛影视| 国产免费看JIZZ视频| 一个人免费观看www视频| 亚洲另类自拍丝袜第1页| 亚洲第一区精品日韩在线播放| 99re在线这里只有精品免费| 风间由美在线亚洲一区| 亚洲美女视频网址| 亚洲视频在线一区二区| 久久一区二区三区免费| 亚洲制服丝袜第一页| 日本高清免费aaaaa大片视频| 亚洲第一se情网站| 久久久久亚洲av无码专区| 亚洲国产精品不卡毛片a在线| 亚洲免费网站在线观看| 丝瓜app免费下载网址进入ios| 亚洲精品无码国产片| 亚洲视频在线不卡| 亚洲精品无码成人AAA片| 又色又污又黄无遮挡的免费视 | 手机在线免费视频| 3344在线看片免费| 九九久久精品国产免费看小说 | 一个人看的www在线免费视频 | 午夜国产精品免费观看| 最近的2019免费中文字幕| 国产精品亚洲专区一区| 亚洲六月丁香婷婷综合| 亚洲美女视频免费| 亚洲国产一区二区三区青草影视| 久久久久亚洲AV无码专区网站| 国产男女猛烈无遮挡免费视频|