Я хочу создать класс, который принимает два параметра. Один должен быть напечатан просто как T. Другой должен быть напечатан как нечто, расширяющее как T, так и SomeInterface<T>
. Когда я пытаюсь это сделать с помощью
public class SomeClass<T, S extends SomeInterface<T> & T>
тогда Java жалуется с
"Тип T не является интерфейсом; его нельзя указывать в качестве ограниченного параметра"
и если вместо этого я пытаюсь создать интерфейс для S с
public interface TandSomeInterface<T> extends SomeInterface<T>, T
тогда Java жалуется с
«Невозможно сослаться на параметр типа T как на супертип»
Есть ли способ сделать это на Java? Я думаю, что вы можете сделать это в C ++ ...?