Java generic неизвестного типа

снова непонятки с генериками

Имеется некий интерфейс.
Он будет генерировать строку, причем генерация очень сильно зависит от его параметра T, также он будет предоставлять класс своего генерика

public interface SomeStringGenerator<T> {
    public String generate(T param);

    public Class<T> getTypeClass();
}

У него есть несколько различных реализаций, возможно будет больше, в общем обобщить T здесь совершенно невозможно.

Теперь есть какой-то класс, который будет работать с этим генератором, допустим будет составлять динамическую красивую страничку текста для пользователя. (Возможно пример не очень применяется на практике, но это только пример)

public class SomePageConsumer {
    private final Collection<SomeStringGenerator<?>> generators;
    private final SomeClass someObject;

    public String generateFormattedPage() {
       for (SomeStringGenerator<?> generator : generators) {
           if (someObject.getClass().isAssignableFrom(generator.getDataClass())){
               generator.generate(generator.getTypeClass().cast(someObject)); //compile error
           }
       }
    }
}

Собственно код позволяет предоставить все необходимые объекты для генераторов, но вот генераторы не хотят их принимать.
Не очень понимаю почему компилятор ругается, ведь используется явное преобразование обьектов к требуемому типу.


Ответы (0 шт):