<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
    數(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      * 通過反射,獲得定義Class時聲明的父類的范型參數(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      * 通過反射,獲得定義Class時聲明的父類的范型參數(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 閱讀(17905) 評論(4)  編輯  收藏

    評論

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

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

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

    @小熊

    樓上的,沒看懂!樓主是拿泛型的Class類型。
    沒文化,等你到了這個層次,你就會理解。好好看多點(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ù)  更多評論   

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

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

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 妻子5免费完整高清电视| h在线观看视频免费网站| 久久亚洲中文字幕精品一区四| 国产一级黄片儿免费看| 久久99亚洲网美利坚合众国| 午夜成年女人毛片免费观看| CAOPORN国产精品免费视频| 亚洲成av人片不卡无码| 免费人成视网站在线观看不卡| 免费成人高清在线视频| 亚洲heyzo专区无码综合| 亚洲av无码片在线播放| 日韩精品无码人妻免费视频| 老司机69精品成免费视频| 亚洲国产成人手机在线观看| 久久精品亚洲中文字幕无码网站 | 久久不见久久见免费影院| 日本激情猛烈在线看免费观看| 东北美女野外bbwbbw免费| 亚洲无吗在线视频| 亚洲精品卡2卡3卡4卡5卡区| 在线看片人成视频免费无遮挡| 免费成人在线观看| 亚洲精品福利网泷泽萝拉| 国产亚洲精品美女久久久久| 一级毛片免费毛片毛片| 久久精品免费全国观看国产| 成人免费毛片观看| 日本久久久久亚洲中字幕| 国产伦精品一区二区三区免费迷| 人人玩人人添人人澡免费| 四虎影视久久久免费| 亚洲人成人无码.www石榴| 亚洲黄色片在线观看| 亚洲无线码在线一区观看| 大胆亚洲人体视频| 大学生a级毛片免费观看| 免费三级毛片电影片| 99热这里只有精品6免费| 久久精品成人免费观看97| 美女被羞羞网站免费下载|