基本上只是相反的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;
    }
};

10-04 12:03