Respuestas:
Si desea saber si un se Class
extiende o no a otro, use Clase # isAssignableFrom (Clase) . Para su ejemplo, sería:
if(B.class.isAssignableFrom(A.class)) { ... }
Si le interesa saber si una instancia es o no de un tipo particular, use instanceof
:
A obj = new A();
if(obj instanceof B) { ... }
Tenga en cuenta que estos regresarán true
si la clase / instancia es miembro de la jerarquía de tipos y no es restrictiva para las relaciones directas de superclase / subclase. Por ejemplo:
// 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 desea verificar las relaciones directas de superclase / subclase, Tim también ha proporcionado una respuesta .
Desea saber si b
es asignable desde a
:
b.isAssignableFrom(a);
Además, si desea saber que a
es una subclase directa de b
:
a.getSuperclass().equals(b);
a
y b
de la pregunta