如何从泛型类型获取类对象?
问题描述:
我试图做到这一点:
public static<T extends Object> T perform(){
Class<T> classObject = T.class;
Class<T> classObjectAgain = T.getClass();
//...
}
我想到了 “扩展对象” 会给我带来访问的.class和getClass()... 但是,这不会编译:“非法类litteral”
你知道我该如何执行这样的操作?
答
Java泛型是通过类型擦除来实现的(因为它们只出现在Java 5中,这种类型的实现是为了支持遗留代码而选择的)。
这意味着在运行时,所有通用类型实际上都是Object类型的。因此,您不能在运行时使用反射来获取有关参数化对象的信息。
这个答案有很多重复,只是搜索stackoverflow更多。比如“从泛型类获取类”。 – JMelnik 2012-04-17 15:47:45