Java泛型:获取类< Collection< T>&gt ;? [英] Java Generics : Obtaining a Class<Collection<T>>?

查看:126
本文介绍了Java泛型:获取类< Collection< T>&gt ;?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用泛型时遇到问题。给出以下示例:

I'm having trouble using generics. Given the following example :

class A<T> {
  public A(Class<T> myType){
  }
}

class B<E> extends A<Collection<E>> {
  public B(Class<E> myEType){
    super(???);
  }
}

什么?应该 ?
Collection.class 不工作...
集合< E> .class 都不是。
(Class< Collection< E>)Collection.class 不起作用...

What ??? should be ? Collection.class don't work... Collection<E>.class neither. (Class<Collection<E>>)Collection.class do not work...

如果有一个java泛型大师,我需要帮助...:/ $ / $>

If there is a java generics guru, I need help... :/

推荐答案

code> Class< Collection< E>> 除了 Collection.class ,因为类型擦除。您必须使用不安全的强制转型才能将 Collection.class 转换为 Class< Collection< E>> - 具体来说,(Class< Collection< E>>)(Class)Collection.class 将完成这项工作。

You can't possibly get a Class<Collection<E>> except for Collection.class, because of type erasure. You'll have to use unsafe casts to cast a Collection.class to a Class<Collection<E>> -- specifically, (Class<Collection<E>>) (Class) Collection.class will do the job.

这篇关于Java泛型:获取类&lt; Collection&lt; T&gt;&gt ;?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆