Junior
Hoe kun je bepalen of een klasse afgeleid is van een andere klasse?
sobes.tech AI
Antwoord van AI
Gebruikmakend van de operator instanceof of de methode isInstance() van de interface Class.
// Voorbeeld met instanceof
if (myObject instanceof MyParentClass) {
// myObject is een instantie van MyParentClass of een subklasse ervan
}
// Voorbeeld met isInstance()
if (MyParentClass.class.isInstance(myObject)) {
// myObject is een instantie van MyParentClass of een subklasse ervan
}
Het is ook mogelijk om te controleren met behulp van de methoden isAssignableFrom() of getSuperclass() van de klasse Class.
// Voorbeeld met isAssignableFrom()
if (MyParentClass.class.isAssignableFrom(myObject.getClass())) {
// De klasse van myObject is een instantie van MyParentClass of een subklasse ervan
}
// Voorbeeld met getSuperclass() (vereist recursieve controle)
Class<?> currentClass = myObject.getClass();
while (currentClass != null) {
if (currentClass.equals(MyParentClass.class)) {
// myObject is een instantie van MyParentClass of een subklasse ervan
break;
}
currentClass = currentClass.getSuperclass();
}
De operator instanceof en de methode isInstance() zijn de meest directe en aanbevolen voor deze taak. isAssignableFrom() is handig om typecompatibiliteit te controleren bij toewijzingen, en getSuperclass() vereist extra iteraties.