Это, вероятно, было задано раньше, но быстрый поиск вызвал тот же вопрос, заданный для С#. Смотрите здесь.
В основном я хочу проверить, что данный объект реализует данный интерфейс.
Я как-то понял решение, но это просто не достаточно удобно, чтобы часто его использовать в случае if или case, и мне было интересно, что Java не имеет встроенного решения.
public static Boolean implementsInterface(Object object, Class interf){
for (Class c : object.getClass().getInterfaces()) {
if (c.equals(interf)) {
return true;
}
}
return false;
}
EDIT: Хорошо, спасибо за ваши ответы. Особенно для Дэмиена Поллета и Нолдорина, вы заставили меня переосмыслить мой проект, чтобы я больше не тестировал интерфейсы.