尽管使用对象表达式的答案是正确的,并且直接等效于您在Java中执行它的方式,但是如果需要多个ParameterizedTypeReference
s ,则经过修饰的类型参数可以使您简化它:
inline fun <reified T> typeReference() = object : ParameterizedTypeReference<T>() {}
// called as
restTemplate.exchange(requestEntity, typeReference<List<Person>>())
当编译器看到typeReference<SomeType>
调用时,它将被定义替换,因此结果与您编写的相同object : ParameterizedTypeReference<SomeType>() {}
。