我们正在与同事讨论以下调用为何在ResponseEntity中返回数组的问题:
ResponseEntity<WakeupProviderSettingsDTO[]> rep =
restTemplate.getForEntity(url, WakeupProviderSettingsDTO[].class);
代替List<WakeupProviderSettingsDTO>
或某物。
为什么我们不能简单地将实体作为列表传输?
是因为There are no Class literals for parameterized types吗?
这是表演吗?是因为响应集的大小固定吗?
答案 0 :(得分:1)
正如您在那篇文章中指出的。
您不能将.class令牌与参数化类型一起使用
这是使用通用类型List的罕见情况之一。所以你可以这样
ResponseEntity<List> rep = restTemplate.getForEntity(url, List.class);
但是,这样做当然会失去参数化类型所带来的优势。
如果您希望将List与参数化类型一起使用,仍然可以使用ParameterizedTypeReference
进行操作。
要回答您的问题,这与性能或固定大小响应无关,这是java泛型的局限性。