J'essaie d'appeler une méthode où elle signifie que la signature comprend un paramètre de ci-dessous est le code d'échantillon dans KOTLIN P> Classe ResponseObject<User::class.java>::class.java
3 Réponses :
OK J'ai réussi à résoudre mon problème à l'aide de la coulée de type utilisant quand code>
Si vous pouvez modifier la signature de la méthode, vous pouvez essayer quelque chose de similaire à celui suivant:
class ResponseEntity<T : Any>(val body: T)
class ResponseObject<T : Any>(val model: T)
data class User(val id: Long, val status: String)
fun <M : Any, K : ResponseObject<M>> postForEntity(paht: String, model: M): ResponseEntity<K> {
return TODO()
}
val response: ResponseEntity<ResponseObject<User>> = postForEntity("/users", User(1, "good"))
Vous pouvez utiliser
inline fun <reified T> classOf<T>() = T::class.java
val response = testRestTemplate.postForEntity("/users", user, classOf<ResponseObject<User>>())
merci, mais je reçois java.lang.classcastException: java.util.linkedhashmap ne peut pas être coulé sur modèle.User code>
Ensuite, cela dépend de la bibliothèque que vous utilisez, désolé.
Cet usage me semble correct si votre objet de réponse est le type d'utilisateur: "Responsible>"
BTW Vous n'êtes pas obligé de spécifier le type du tout
Val Réponse = TestRestTemplate.postforentity ("/ Utilisateurs", User, ResponsibleObject :: Class.java) Code>Quelle est la signature de la méthode
testtresttempate.postforentiment