我正在尝试保存类类型,并在需要时将其取回。为了保存类类型,我在下面提到的类中创建了一个成员变量为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;
}
答案 0 :(得分:3)
您正在将Class
分配给Type
。调用request.getTypeName().getClass()
时,它等于modelClass.getClass()
的类modelClass
,而不是modelClass
本身。
您需要的只是类型转换:
new RequestSerializer((Class<?>) request.getTypeName())