web-dev-qa-db-fra.com

Obtenir le nom de la classe concrète à partir de la classe abstraite

Je m'excuse si cette question a déjà été posée. J'ai cherché les questions et n'ai pas pu trouver de réponse.

En Java, à l'intérieur d'une classe abstraite, puis-je obtenir l'instance de la classe concrète qui la prolonge?

Si oui, puis-je voir un exemple de code?

60
blong824

Oui, vous pouvez le faire en appelant this.getClass() . Cela vous donnera l'instance Class pour le type d'exécution de this.

Si vous voulez juste le nom de la classe, vous pouvez utiliser this.getClass().getName() .

Enfin, il y a aussi this.getClass().getSimpleName() et this.getClass().getCanonicalName() . J'utilise le premier tout le temps pour imprimer des noms de classe lisibles pour enregistrer des fichiers et autres.

75
NPE