Передача разрешенного во время выполнения параметра в метод, имеющий несколько связанных типов, ошибка компиляции

У меня есть метод, который выглядит следующим образом:

public static <T extends Enum<T> & Marshallable> String foo(Collection<T> collection, Class<? extends Marshallable>... marshallables);

Поэтому я ожидаю, что коллекция будет представлять собой интерфейс Enum, реализующий интерфейс Marshallable. Это работает нормально, если у меня есть конкретные типы Enum во время выполнения, но я написал тестовый метод, который динамически создает список Enum (реализующий Marshallable) из объекта класса, и у меня возникают проблемы при передаче этого списка в метод выше.

@Test
public void fooTest() {
...
if (clazz.isEnum()) { // collection enum xml
    List<? extends Enum<? extends Marshallable>> enumList = (List<? extends Enum<? extends Marshallable>>) Arrays.asList(clazz.getEnumConstants());
--> String enumListXml = foo(enumList, clazz);
...

Выделенная строка выдаст ошибку компиляции. Я не мог понять, как передать список без изменения сигнатур метода.

Ответы на вопрос(1)

Ваш ответ на вопрос