How to check if a subclass is an instance of a class at runtime? [duplicate] How to check if a subclass is an instance of a class at runtime? [duplicate] java java

How to check if a subclass is an instance of a class at runtime? [duplicate]


You have to read the API carefully for this methods. Sometimes you can get confused very easily.

It is either:

if (B.class.isInstance(view))

API says: Determines if the specified Object (the parameter) is assignment-compatible with the object represented by this Class (The class object you are calling the method at)

or:

if (B.class.isAssignableFrom(view.getClass()))

API says: Determines if the class or interface represented by this Class object is either the same as, or is a superclass or superinterface of, the class or interface represented by the specified Class parameter

or (without reflection and the recommended one):

if (view instanceof B)


if(view instanceof B)

This will return true if view is an instance of B or the subclass A (or any subclass of B for that matter).


Maybe I'm missing something, but wouldn't this suffice:

if (view instanceof B) {    // this view is an instance of B}