<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

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


    網站導航:
     
    主站蜘蛛池模板: 中文字幕免费不卡二区| 精品亚洲综合在线第一区| 中文字幕视频免费| 精品国产日韩亚洲一区91| 亚洲一区二区影视| 亚洲va无码va在线va天堂| 亚洲Av无码国产情品久久| 岛国片在线免费观看| 1000部啪啪未满十八勿入免费| 中文字幕久无码免费久久| 污网站在线观看免费| 最近免费中文字幕视频高清在线看| 亚洲黄色免费网站| 亚欧乱色国产精品免费视频| 美女免费精品高清毛片在线视 | 亚洲精品中文字幕无码A片老| 亚洲天堂中文资源| 亚洲精品无码久久千人斩| 亚洲男人在线无码视频| 免费在线观看中文字幕| 永久黄网站色视频免费| 成人黄软件网18免费下载成人黄18免费视频 | 亚洲国产午夜福利在线播放| 全免费一级毛片在线播放| 国产卡二卡三卡四卡免费网址| 在线看片免费人成视频久网下载| 精品国产免费人成网站| 九九免费观看全部免费视频| 一区二区三区在线观看免费| 人妻18毛片a级毛片免费看| 日本精品久久久久久久久免费| 欧洲乱码伦视频免费国产 | 国产在线a免费观看| 永久免费在线观看视频| 久久久久久精品成人免费图片| 中文字幕在线免费| 91成人在线免费观看| 114一级毛片免费| 好先生在线观看免费播放| 午夜男人一级毛片免费| 四虎永久在线精品免费影视|