En résumé
-
L’introspection est également appelée réflexivité.
-
L’introspection permet de parcourir dynamiquement les éléments d’une classe (méthodes, attributs, constructeurs, etc).
-
En Kotlin, l’introspection se fait à partir de la classe KClass tandis qu’en Java elle se fait à partir de la classe Class.
-
L’introspection permet d’instancier dynamiquement une classe.
-
L’introspection permet, notamment, de manipuler des éléments privés d’une classe (comme un attribut ou une fonction).
-
Historiquement, pour gérer les types génériques au niveau de la machine virtuelle Java (JVM), c’est le principe de l’effacement de type qui est utilisé.
-
Le principe de l’effacement de type est responsable de l’impossibilité de lire les informations d’un type générique lors de l’exécution d’un programme.
-
Pour contourner cette problématique, le langage Kotlin introduit la réification de type.
-
Pour mettre en œuvre ce concept, il convient d’utiliser le mot-clé reified.
-
La réification de type doit obligatoirement s’accompagner de l’utilisation d’une fonction "en ligne".