我有一个泛型课,Foo<T>.在一个方法中Foo,我想得到类型为T的类实例,但我无法调用T.class.
使用它的首选方法是什么T.class?
我怎样才能做到这一点?
public class GenericClass<T>
{
public Type getMyType()
{
//How do I return the type of T?
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试的所有东西总是返回类型Object而不是使用的特定类型.
我有一个列表,编程如下:public class MyList<T>.有没有办法使用T变量来获取类的名称(所以我可以从内部MyList知道T是字符串,套接字等)?
编辑:没关系,在这里找到答案.
我正在创建一个泛型类,并且在其中一个方法中我需要知道当前使用的泛型类的Class.原因是我调用的方法之一将此作为参数.
例:
public class MyGenericClass<T> {
public void doSomething() {
// Snip...
// Call to a 3rd party lib
T bean = (T)someObject.create(T.class);
// Snip...
}
}
Run Code Online (Sandbox Code Playgroud)
显然,上面的示例不起作用并导致以下错误:类型参数T的非法类文字.
我的问题是:有人知道一个很好的选择或解决方法吗?