我正在编写一个网络类,并希望能够解析对不同类的不同响应(仍然存在一对一的关系,但我希望有一个单一的来parseResponse()处理来自不同端点的所有响应,并endpoint.className具有预期的类类型我应该映射到):
private Class<?> parseResponse(StringBuilder responseContent, Endpoint endpoint) {
ObjectMapper mapper = new ObjectMapper();
try {
Class<?> object = mapper.readValue(responseContent.toString(), endpoint.className);
// endpoint.className has Class<?> type
if (object instanceof endpoint.className) {
}
} catch (IOException e) {
// handle errors
}
}
但是如果我写的话就会出错if (object instanceof endpoint.className)
更新:可能更好的选择是向类添加parse()方法Endpoint:
public Class<?> parseResponse(String responseContent) {
// this.className has Class<?> type (e.g., Foo.class).
}
public enum Endpoint {
FOO (Foo.class),
BAR (Bar.class);
private Class<?> classType;
}
但是仍然存在相同类型的错误。
月关宝盒
相关分类