java吧 关注:1,269,084贴子:12,775,747
  • 25回复贴,共1

如何通过反射,获得指定类的泛型参数的实际类型

只看楼主收藏回复

public T get(final PK id) {
return (T) em.find(entityClass, id);
}
这里的
entityClass如何通过反射得到


1楼2012-10-17 12:16回复
    @吞噬天帝
    @遗失曾经的once 


    2楼2012-10-17 12:17
    回复
      2025-07-13 16:29:32
      广告
      @吞噬天帝 


      3楼2012-10-17 12:18
      回复
        ,多传一个 Class<T> 进来吧……


        IP属地:江苏4楼2012-10-17 12:19
        收起回复
          顺便给你介绍个贴子:
          http://tieba.baidu.com/p/1870781710


          IP属地:江苏5楼2012-10-17 12:27
          收起回复
            public static Class getSuperClassGenricType(Class clazz, int index) { Type genType = clazz.getGenericSuperclass();//得到泛型父类 //如果没有实现ParameterizedType接口,即不支持泛型,直接返回Object.class if (!(genType instanceof ParameterizedType)) { return Object.class; } //返回表示此类型实际类型参数的Type对象的数组,数组里放的都是对应类型的Class, 如BuyerServiceBean extends DaoSupport<Buyer,Contact>就返回Buyer和Contact类型 Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); if (index >= para***ength || index < 0) { throw new RuntimeException("你输入的索引"+ (index<0 ? "不能小于0" : "超出了参数的总数")); } if (!(params[index] instanceof Class)) { return Object.class; } return (Class) params[index]; }


            6楼2012-10-17 12:43
            回复
              大神看看6楼的方法中不@windsun_ul


              7楼2012-10-17 12:44
              回复
                你上面那个entityClass看着像要穿一个具体的类型、、你说用反射得到是什么意思?


                IP属地:北京8楼2012-10-17 13:06
                收起回复
                  2025-07-13 16:23:32
                  广告
                  我好像来晚了。
                  http://www.oschina.net/code/snippet_107336_3474
                  这篇文章和你做的差不多。话说你得到这个类型走什么?


                  IP属地:贵州9楼2012-10-18 09:47
                  收起回复