我正在尝试调用签名包含参数Class<T>的方法

以下是kotlin中的示例代码

val response: ResponseEntity<ResponseObject<*>> = testRestTemplate.postForEntity("/users", user, ResponseObject::class.java)


我想要实现的是摆脱responseObject中的<*>并使其成为

val response: ResponseEntity<ResponseObject<User>> = ???


但我不确定要提供什么正确的语法来满足Class<T>要求

我试过了

ResponseObject<User::class.java>::class.java


但这不是有效的语法。有指针吗?

真正的问题是,如果我使用*我不知道如何正确地从那里正确推断User实例。

最佳答案

好的,我设法使用when使用类型转换解决了我的问题

@Test
    fun testCreateUser() {
        val user = User(id = null)
        val response = testRestTemplate.postForEntity("/users", user, ResponseObject::class.java)
        val responseObject = response.body
        when (val returnedUser = responseObject.model) {
            is User -> {
                assertNotNull(returnedUser.id)
                assertEquals(UserStatus.active, returnedUser.status)
            }
        }
    }

10-02 05:45