返回由 ResponseEntity<List> 返回的 List<myObj>

我的 REST 客户端使用 RestTemplate 获取对象列表。

ResponseEntitiy<List> res = restTemplate.postForEntity(getUrl(), myDTO, List.class);

现在我想使用返回的列表,并将其作为List返回给调用类。对于字符串,可以使用 toString,但是列表的解决方法是什么?


答案 1

首先,如果您知道 List 中元素的类型,则可能需要像这样使用该类。ParameterizedTypeReference

ResponseEntity<List<MyObj>> res = restTemplate.postForEntity(getUrl(), myDTO, new ParameterizedTypeReference<List<MyObj>>() {});

然后,如果您只想返回列表,则可以执行以下操作:

return res.getBody();

如果您只关心列表,则可以执行以下操作:

// postForEntity returns a ResponseEntity, postForObject returns the body directly.
return restTemplate.postForObject(getUrl(), myDTO, new ParameterizedTypeReference<List<MyObj>>() {});

答案 2

我无法得到工作中被接受的答案。它似乎不再具有此方法签名。我不得不改用:postForEntityrestTemplate.exchange()

ResponseEntity<List<MyObj>> res = restTemplate.exchange(getUrl(), HttpMethod.POST, myDTO, new ParameterizedTypeReference<List<MyObj>>() {});

然后返回列表,如上所述:

return res.getBody();