public static void printElements(List<A> list, Class<? extends A> type) {
for (A element : list) {
if (type.isAssignableFrom(element.getClass())) {
System.out.println(element);
}
}
}
Метод isAssignableFrom
можно использовать для определения, является ли класс, полученный в качестве параметра, тем же классом или суперклассом каждого элемента списка.
Class<? extends A>
используется для разрешены только типы типа A или подкласса, которые являются типом элементов, разрешенных в списке.