请考虑以下代码。我试图使用spring-hateoas Traverson类
获取基于泛型responseType的对象列表 public <T> ArrayList<T> getList(String path, Class<T> responseType) {
String url = decodeURL(host + path);
try {
ParameterizedTypeReference<Resources<T>> typeReference = new ParameterizedTypeReference<Resources<T>>() {
};
Traverson traverson = new Traverson(new URI(url), MediaTypes.HAL_JSON);
Resources<T> t = traverson.follow().toObject(typeReference);
ArrayList<T> list = new ArrayList<T>();
list.addAll(t.getContent());
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
这是我的常用方法,使用此方法我要求许多REST API使用不同类型的对象。例如
List<User> users = getList("/users", User.class);
直到现在一切正常。但是当迭代用户时,它会抛出以下错误
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.foo.data.User
有什么想法吗?我在这里做错了什么?