Comment obtenir la classe d'un paramètre générique en Kotlin ? (reified, inline et TypeReference)
Bonjour à tous ! J'écris en Kotlin depuis peu et j'ai rencontré un problème qui se résolvait simplement en Java mais qui me pose des difficultés en Kotlin. J'ai besoin, à l'intérieur d'une fonction, de savoir avec quel type de paramètre elle a été appelée. Par exemple, j'ai ce code :
```kotlin
fun processList(items: List) {
// Comment savoir ici si T est String, Int ou autre chose ?
// Je veux afficher le type dans le log
println("Processing items of type: ${T::class}") // Erreur !
}
```
En Java, j'aurais utilisé Class et je l'aurais passé explicitement. Mais en Kotlin, je veux éviter cela et rendre l'API plus propre. J'ai essayé d'utiliser T::class, mais le compilateur dit : "Cannot use 'T' as reified type parameter. Use a class instead." J'ai lu à propos de reified, mais je n'ai pas complètement compris comment cela fonctionne. De plus, j'ai besoin que la fonction soit universelle et fonctionne avec tous les types, y compris ceux où les génériques sont effacés (par exemple, List). Comment obtenir correctement la classe T en Kotlin ? Merci d'avance !
<<>>