Provavelmente isso já foi feito antes, mas uma pesquisa rápida trouxe apenas a mesma pergunta para C #. Veja aqui.
O que basicamente quero fazer é verificar se um determinado objeto implementa uma determinada interface.
Eu meio que descobri uma solução, mas isso não é confortável o suficiente para usá-la frequentemente em declarações if ou case e eu estava imaginando se o Java não tem solução embutida.
public static Boolean implementsInterface(Object object, Class interf){
for (Class c : object.getClass().getInterfaces()) {
if (c.equals(interf)) {
return true;
}
}
return false;
}
EDIT: Ok, obrigado por suas respostas. Especialmente para Damien Pollet e Noldorin, você me fez repensar meu design para não testar mais interfaces.