import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class Main{
public static void main(String[] args)
{
Foo<String> foo = new Foo<String>(){};
// 在类的外部这样获取
Type type = ((ParameterizedType)foo.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
System.out.println(type);
// 在类的内部这样获取
System.out.println(foo.getTClass());
}
}
abstract class Foo<T>{
public Class<T> getTClass()
{
Class<T> tClass = (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
return tClass;
}
}
Java获取泛型T的类型 T.class
猜你喜欢
转载自my.oschina.net/u/2526015/blog/1806546
今日推荐
周排行