Comment pour tester si est une sous-classe de
?
Réponses
Trop de publicités?Si vous voulez savoir si oui ou non un Class
s'étend de l'autre, l'utilisation de la Classe#isAssignableFrom(Classe). Pour votre exemple, il serait:
if(B.class.isAssignableFrom(A.class)) { ... }
Si vous êtes intéressé à savoir si ou non d'une instance d'un type particulier, utilisez instanceof
:
A obj = new A();
if(obj instanceof B) { ... }
Notez que ces reviendra true
si la classe/instance est un membre de la hiérarchie des types et ne sont pas limitatifs de la super-classe directe/sous-classe de relations. Par exemple:
// if A.class extends B.class, and B.class extends C.class
C.class.isAssignableFrom(A.class); // evaluates to true
// ...and...
new A() instanceof C; // evaluates to true
Si vous souhaitez vérifier directement super-classe/sous-classe de relations, Tim a fourni une réponse .