我正在尝试保存类类型并在需要时将其恢复。保存类类型我在下面提到的类中创建了一个成员变量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;
}
您正在将Class
分配给Type
。当你打电话给request.getTypeName().getClass()
时,它等于modelClass.getClass()
,这是modelClass
的类,而不是modelClass
本身。
你需要的只是一种类型转换:
new RequestSerializer((Class<?>) request.getTypeName())