How to check if some class implements interface? When having:
Character.Gorgon gor = new Character.Gorgon();
how to check if gor
implements Monster
interface?
public interface Monster {
public int getLevel();
public int level = 1;
}
public class Character {
public static class Gorgon extends Character implements Monster {
public int level;
@Override
public int getLevel() { return level; }
public Gorgon() {
type = "Gorgon";
}
}
}
Is the method getLevel()
overridden in Gorgon
correctly, so it can return level
of new gor
created?
If you want a method like public void doSomething([Object implements Serializable])
you can just type it like this public void doSomething(Serializable serializableObject)
. You can now pass it any object that implements Serializable but using the serializableObject
you only have access to the methods implemented in the object from the Serializable interface.
Use
if (gor instanceof Monster) {
//...
}
In general for AnInterface
and anInstance
of any class:
AnInterface.class.isAssignableFrom(anInstance.getClass());
Source: Stackoverflow.com