ParameterizedTypeReference 的正确使用

在测试中,我希望命中一个返回类型列表的端点。目前我有


@Test

public void when_endpoint_is_hit_then_return_list(){

   //Given

   ParameterizedTypeReference<List<Example>> responseType = new ParameterizedTypeReference<List<Example>>() {};


   String targetUrl = "/path/to/hit/" + expectedExample.getParameterOfList();


   //When


   //This works however highlights an unchecked assignment of List to List<Example>

   List<Example> actualExample = restTemplate.getForObject(targetUrl, List.class);


   //This does not work

   List<Example> actualExample = restTemplate.getForObject(targetUrl, responseType);


   //This does not work either

   List<Example> actualExample = restTemplate.exchange(targetUrl, HttpMethod.GET, null, new ParameterizedTypeReference<List<Example>>() {});


   //Then

   //Assert Results

}

getForObject 方法的问题是 ParameterizedTypeReference 使 getForObject 方法无法解析,因为类型不匹配。


交换方法的问题是类型不兼容。必需的列表,但“交换”被推断为 ResponseEntity:不存在类型变量的实例,因此 ResponseEntity 符合列表


在这种情况下,如何正确使用 ParameterizedTypeReference 来安全地返回我想要的 List 类型?


繁华开满天机
浏览 2134回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java