Instancier dynamiquement des objets

L’introspection permet non seulement de découvrir dynamiquement les différents éléments qui entrent dans la composition d’une classe (classe mère, interfaces implémentées, constructeurs, méthodes, attributs), mais aussi de créer des instances d’objets dynamiquement, sans appeler le constructeur comme nous l’avons fait jusqu’à maintenant.

Reprenons l’exemple composé des classes Labrador, Dog et de l’interface Animal :

interface Animal 
 
abstract class Dog(val name: String, protected var weight: Int) 
 : Animal 
{ 
 
 abstract fun bark() 
 
 fun walk() 
 { 
   weight-- 
 } 
 
 fun eat(foodWeight: Int): Boolean 
 { 
   return if (foodWeight > weight) 
   { 
     false 
   } 
   else 
   { 
     weight++ 
     true 
   } 
 } 
 
 private fun test() 
 { 
 
 } 
 
} 
 
class Labrador(val color: String, private var age: Int, name: 
String, weight: Int) 
 : Dog(name, weight) 
{ 
 
 constructor(name: String) : this("Black", 1, name, 5) 
 
 override...
couv_RIKOT.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Découvrir une classe par introspection
Suivant
Aller plus loin