将类类型保存为java中的Type数据类型

问题描述 投票:0回答:1

我正在尝试保存类类型并在需要时将其恢复。保存类类型我在下面提到的类中创建了一个成员变量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;

}
java class
1个回答
3
投票

您正在将Class分配给Type。当你打电话给request.getTypeName().getClass()时,它等于modelClass.getClass(),这是modelClass的类,而不是modelClass本身。

你需要的只是一种类型转换:

new RequestSerializer((Class<?>) request.getTypeName())
© www.soinside.com 2019 - 2024. All rights reserved.