【发布时间】:2018-09-12 00:41:18
【问题描述】:
我必须反序列化我的 Java 对象,我不能使用静态引用,即 TypeReference。
喜欢,
所以,我剩下的是使用类型工厂生成正确的 Javatype,但不知何故我无法正确获取语法。
上述是我的类和接口。
public interface Request {}
public interface Response {}
public class MyRequest implements Request {
int id;
//Getter //Setter
}
public class MyResponse implements Response {
int id;
//Getter //Setter
}
public class UberObject<S extends Request, T extends Response> implements Serializable {
private S request;
private T response;
//Getter//Setter
}
public class UberObjectWithId<S extends Request, T extends Response> extends UberObject<S, T> {
private int id;
//Getter //Setter
}
UberObjectWithId typereferencedObject =
objectmapperobject.readValue(serialisedUberObjectWithId,
new TypeReference<UberObjectWithId<MyRequest, MyResponse>>() {});
上述方法有效,但由于上述链接中提到的限制,我不能使用 TypeReference。
我尝试使用 Typefactory 检索 JavaType,但无法正确获取语法。
JavaType type = mapper.getTypeFactory().constructParametrizedType(UberObjectWithId.class,
UberObject.class, Request.class, Response.class);
但调用失败
objectmapperobject.readValue(serialisedUberObjectWithId, type);
如何解决我的特定问题?
【问题讨论】:
标签: java json objectmapper