Предположим, у меня есть следующее
return webClient
.get()
.uri { uriBuilder: UriBuilder ->
uriBuilder.path(myUrl)
.queryParam("page", pageable.pageNumber)
.queryParam("size", pageable.pageSize)
.build()
}
.retrieve()
Я ожидаю, что у меня будет такой результат:
PagedResult<MyObject>
PagedResult прост
data class PagedResult<T>(
val content: Iterable<T>,
val total: Long,
val page: Int,
val size: Int)
MyObject тривиален POJO также
Я пытаюсь сделать следующее:
return webClient
.get()
.uri { uriBuilder: UriBuilder ->
uriBuilder.path(poolServiceControllerUrl)
.queryParam("page", pageable.pageNumber)
.queryParam("size", pageable.pageSize)
.build()
}
.retrieve()
.bodyToMono(PagedResult<MyObject>::class.java)
Это возвращает мне ошибку только классы разрешены в левой части литерала класса
ОК, пытаюсь исправить это следующим образом:
val type: Type = object : TypeToken<PagedResult<MyObj>>() {}.type
return webClient
.get()
.uri { uriBuilder: UriBuilder ->
uriBuilder.path(myUrl)
.queryParam("page", pageable.pageNumber)
.queryParam("size", pageable.pageSize)
.build()
}
.retrieve()
.bodyToMono(type.javaClass)
Возвращает мне com.faster xml .jackson.databind.ex c .InvalidDefinitionException: невозможно создать экземпляр `com.google.gson.internal. $ Gson $ Types $ ParameterizedTypeImpl