Я определил метод:
protected inline fun <reified T : Any> executeForEntity(httpUriRequest: HttpUriRequest): T {
return httpClient.execute(httpUriRequest) { response: HttpResponse ->
val status = response.statusLine.statusCode
if (status == 200) {
val content = EntityUtils.toString(response.entity)
// this is the Jackson default readValue()
objectMapper.readValue(content, T::class.java)
} else {
throw RuntimeException("Service error occurred, status=${response.statusLine.statusCode}, content=${EntityUtils.toString(response.entity)}")
}
}
}
Я пытаюсь:
val entities: List<Entity> = getForEntity("/api/v1/my-entities")
Однако вместо того, чтобы получить список сущностей, Джексон возвращается с ArrayList из HashMaps?Даже с явным объявлением типа ... Это довольно странно, что происходит?
Использование метода расширения модуля Джексона Котлина делает ошибки еще хуже.Не поддерживаются ли дженерики в этих сценариях использования?