2012-04-27 21 views
5

Digamos que tengo dos objetos Class. ¿Hay alguna manera de verificar si una clase es un subtipo de la otra?Comprobando si un objeto Clase es un subtipo de otro objeto Clase en Java?

public class Class1 { ... } 

public class Class2 extends Class1 { ... } 

public class Main { 
    Class<?> clazz1 = Class1.class; 
    Class<?> clazz2 = Class2.class; 

    // If clazz2 is a subtype of clazz1, do something. 
} 
+4

¿Usted está buscando: http://stackoverflow.com/questions/3504870/how-to-test-if-one-java-class-extends-another -en tiempo de ejecución – JRaymond

Respuesta

8
if (clazz1.isAssignableFrom(clazz2)) { 
    // do stuff 
} 

Esto comprueba si clazz1 es la misma, o una superclase de clazz2.

1

Puede comprobar de esta manera:

if(Class1.class.isAssignableFrom(Class2.class)){ 

} 
Cuestiones relacionadas