获取泛型中的类
时间: 2023-08-24 12:13:35 浏览: 51
要获取泛型中的类,可以使用Java反射机制中的TypeToken类。这个类可以帮助我们获取泛型中的类型信息,例如:
```
public abstract class GenericClass<T> {
private final TypeToken<T> typeToken = new TypeToken<T>(getClass()) {};
public Class<T> getGenericType() {
return (Class<T>) typeToken.getRawType();
}
}
```
在上面的例子中,我们定义了一个泛型类GenericClass<T>,其中T是泛型参数。我们通过创建一个TypeToken对象来获取泛型参数T的类型信息,然后通过getRawType()方法获取该类型的Class对象。
使用这个方法,我们可以很容易地获取泛型中的类,例如:
```
public class Example {
public static void main(String[] args) {
GenericClass<String> gc = new GenericClass<String>() {};
Class<String> clazz = gc.getGenericType();
System.out.println(clazz.getName()); // 输出:java.lang.String
}
}
```
在这个例子中,我们创建了一个GenericClass<String>对象,并通过getGenericType()方法获取了泛型参数String的类型信息。最终我们输出了这个类型的名称。