Wie testet man, ob eine Java-Klasse zur Laufzeit eine andere erweitert?
Wie kann ich testen, ob a
ist eine Unterklasse von b
?
Class<?> a = A.class;
Class<?> b = B.class;
InformationsquelleAutor der Frage Armand | 2010-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie auf der Suche nach:
InformationsquelleAutor der Antwort meriton
Wenn Sie wissen wollen, ob oder nicht eine
Class
erstreckt sich ein weiterer, verwenden Sie Klasse#isAssignableFrom(Class). Für dein Beispiel wäre es:Wenn du daran interessiert bist, ob oder nicht eine Instanz eines bestimmten Typs ist, verwenden Sie
instanceof
:Beachten Sie, dass diese zurück
true
wenn die Klasse/Instanz ist ein Mitglied der Typ-Hierarchie und sind nicht einschränkend für die direkte Oberklasse/Unterklasse-Beziehungen. Zum Beispiel:Wenn Sie prüfen wollen, für die direkte Oberklasse/Unterklasse-Beziehungen, Tim hat eine Antwort als gut.
InformationsquelleAutor der Antwort Rob Hruska
Sie möchten wissen, ob
b
zuweisbar ist ausa
:Außerdem, wenn Sie wollen, um zu wissen, dass
a
ist eine direkte Unterklasse vonb
:InformationsquelleAutor der Antwort Tim Stone