Si la classe B et la classe C étendent la classe A et que j'ai un objet de type B ou C, comment puis-je déterminer quelle instance instancie?
Réponses
Trop de publicités?Utilisez Object.getClass () . Il renvoie le type d'exécution de l'objet.
Vous pouvez utiliser:
Object instance = new SomeClass();
instance.getClass().getName(); //will return the name (as String) (== "SomeClass")
instance.getClass(); //will return the SomeClass' Class object
HTH. Mais je pense que la plupart du temps ce n'est pas une bonne pratique d'utiliser ça pour contrôler le flux ou quelque chose de similaire ...
Toute utilisation de l'une des méthodes suggérées est considérée comme une odeur de code qui est basée sur un mauvais design OO.
Si votre conception est bonne, vous ne devriez pas avoir besoin d'utiliser getClass()
ou instanceof
.
N'importe laquelle des méthodes suggérées fera l'affaire, mais juste quelque chose à garder à l'esprit, du point de vue du design.
Il y a aussi une `` méthode sur le " " Class. Si vous obtenez la classe d’un objet via
vous pouvez voir si votre objet est une instance de la même classe que
via