Это весь код, необходимый для получения этой ошибки? Я видел нечто очень похожее в каком-то коде, который смотрел сегодня. Был добавлен дополнительный параметр в эквивалент вашего метода Factory, который также имел универсальный тип. Здесь не хватало его общего определения, и я думаю, что он виноват в том, что запутал компилятор
т. Е. Если ваш фабричный метод был похож на
public class Factory {
public static <E extends SomeInterface> E load( Class<E> class, Key key ) {
// return an instance of E
}
}
Там, где есть некоторый класс Key, определенный как этот
public class Key<Datatype> {
....
}
Давая что-то подобное для вызова метода, обратите внимание на отсутствие обобщений при объявлении ключа
Key key = new Key()
MyObject obj = Factory.load( MyObject.class, key );
Надеюсь, это поможет,