基本上只是相反的of this question。我想将Class 对象转换为TypeReference 对象。
我试过了:
foo(Class<T> valueType)
{
TypeReference ref = new TypeReference<T>(){};
}
但这只是返回类的父类(super class)的类型引用。我也尝试过:
foo(Class<T> valueType)
{
TypeReference ref = new TypeReference<valueType>(){};
}
和
foo(Class<T> valueType)
{
TypeReference ref = new TypeReference<valueType.getRawClass()>(){};
}
但是后两个不编译。我该怎么做呢?
最佳答案
您可以覆盖getType()
以返回您的类型:
new TypeReference<T>(){
@Override
public Type getType() {
return valueType;
}
};