在Java中将类类型保存为Type数据类型

时间:2018-08-09 06:13:09

标签: java class

我正在尝试保存类类型,并在需要时将其取回。为了保存类类型,我在下面提到的类中创建了一个成员变量为Type typeName。 但是当我尝试使用getTypeName取回它时,返回的Class而不是实际的类名。

public class Request<T>  {

    private Type typeName;

    public Type getTypeName() {
        return typeName;
    }

    public void setTypeName(Type typeName) {
        this.typeName = typeName;
    }
}

这就是我保存班级类型的方式

for(Class modelClass: realmObjectClasses) {

        Request<T> request = new Request<T>();
        request.setTypeName(modelClass);            
}

现在,当我尝试使用request.getTypeName().getClass()获取类型时,方法返回的是“类”而不是实际的类类型

我需要将request.getTypeName().getClass()的值传递给后续的构造函数new RequestSerializer(request.getTypeName().getClass())

public RequestSerializer(Class<?> className){

    mClass = className;

}

1 个答案:

答案 0 :(得分:3)

您正在将Class分配给Type。调用request.getTypeName().getClass()时,它等于modelClass.getClass()的类modelClass,而不是modelClass本身。

您需要的只是类型转换:

new RequestSerializer((Class<?>) request.getTypeName())