在运行时获取类的泛型类型
2022-08-31 04:13:07
我怎样才能做到这一点?
public class GenericClass<T>
{
public Type getMyType()
{
//How do I return the type of T?
}
}
到目前为止,我尝试过的所有内容始终返回类型,而不是使用的特定类型。Object
我怎样才能做到这一点?
public class GenericClass<T>
{
public Type getMyType()
{
//How do I return the type of T?
}
}
到目前为止,我尝试过的所有内容始终返回类型,而不是使用的特定类型。Object
正如其他人所提到的,这只有在某些情况下才有可能通过反思。
如果您确实需要该类型,这是通常的(类型安全)解决模式:
public class GenericClass<T> {
private final Class<T> type;
public GenericClass(Class<T> type) {
this.type = type;
}
public Class<T> getMyType() {
return this.type;
}
}
我见过这样的东西
private Class<T> persistentClass;
public Constructor() {
this.persistentClass = (Class<T>) ((ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
}
在休眠通用数据访问对象示例中