Test if object implements interface
java
Solution
The `instanceof` operator does the work in a `NullPointerException` safe way. For example:
if ("" instanceof java.io.Serializable) {
// it's true
}
yields true. Since:
if (null instanceof AnyType) {
// never reached
}
yields false, the `instanceof` operator is null safe (the code you posted isn't).
instanceof is the built-in, compile-time safe alternative to Class#isInstance(Object)
Problem
This has probably been asked before, but a quick search only brought up the same question asked for C#. See here. What I basically want to do is to check wether a given object implements a given interface. I kind of figured out a solution but this is just not comfortable enough to use it frequently in if or case statements and I was wondering wether Java does not have built-in solution. ``` public static Boolean implementsInterface(Object object, Class interf){ for (Class c : object.getClass().getInterfaces()) { if (c.equals(interf)) { return true; } } return false; } ``` EDIT: Ok, thanks for your answers. Especially to Damien Pollet and Noldorin, you made me rethink my design so I don't test for interfaces anymore.