Возможно, это уже задавалось ранее, но быстрый поиск поднял только тот же вопрос, который задавался для C #. Посмотреть здесь.
В основном я хочу проверить, реализует ли данный объект данный интерфейс.
Я вроде нашел решение, но это не достаточно удобно, чтобы использовать его часто в операторах 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;
}
РЕДАКТИРОВАТЬ: Хорошо, спасибо за ваши ответы. Особенно для Дэмиена Поллета и Нолдорина, вы заставили меня переосмыслить мой дизайн, чтобы я больше не тестировал интерфейсы.