BJ Dela Cruz
BJ Dela Cruz

Reputation: 5354

Checking if a Class object is a subtype of another Class object in Java?

Let's say I have two Class objects. Is there a way to check whether one class is a subtype of the other?

 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.
 }

Upvotes: 10

Views: 4991

Answers (2)

Nishant
Nishant

Reputation: 32222

You can check like this:

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

}

Upvotes: 2

Travis Webb
Travis Webb

Reputation: 15018

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

This checks if clazz1 is the same, or a superclass of clazz2.

Upvotes: 11

Related Questions