Junior
Bir sinifin başqa bir sinifdən törədiyini necə müəyyən etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
instanceof operatoru və ya Class interfeysinin isInstance() metodundan istifadə.
// `instanceof` ilə nümunə
if (myObject instanceof MyParentClass) {
// myObject, MyParentClass və ya onun törəməsi nümunəsidir
}
// `isInstance()` ilə nümunə
if (MyParentClass.class.isInstance(myObject)) {
// myObject, MyParentClass və ya onun törəməsi nümunəsidir
}
Həmçinin, Class sinfinin isAssignableFrom() və ya getSuperclass() metodları ilə də yoxlamaq olar.
// `isAssignableFrom()` ilə nümunə
if (MyParentClass.class.isAssignableFrom(myObject.getClass())) {
// myObject-in sinfi, MyParentClass və ya onun törəməsidir
}
// `getSuperclass()` ilə nümunə (rekursiv yoxlama tələb edir)
Class<?> currentClass = myObject.getClass();
while (currentClass != null) {
if (currentClass.equals(MyParentClass.class)) {
// myObject, MyParentClass və ya onun törəməsi nümunəsidir
break;
}
currentClass = currentClass.getSuperclass();
}
instanceof operatoru və isInstance() metodu bu vəzifə üçün ən birbaşa və tövsiyə olunanlardır. isAssignableFrom() tiplərin uyğunluğunu yoxlamaqda faydalıdır və getSuperclass() əlavə iterasiyalar tələb edir.