Я знаю, что можно добавить несколько ограничений в определение общего класса, например:
class Example<I extends Object & Comparable<Object>>{}
Но я хочу, чтобы общий (MyGeneric
) принимал в качестве своего параметра типа другой общий (SomeGeneric<T>
) и ограничивал параметр типа (T
) этого общего (например, T extends SomeClass
).
Важно, мне нужно знать типы как SomeGeneric
, так и SomeClass
внутри класса (G
и T
необходимо, чтобы оба были связаны). Например, представьте себе что-то вроде этого:
class MyGeneric<G extends SomeGeneric<T>, T extends SomeClass>
{
public G returnSomeGenericImpl(){}
public T returnSomeClassImpl(){}
}
Вопрос: Вышеупомянутые работы, но я бы предпочел, чтобы мой класс имел только один параметр типа, чтобы сделать жизнь проще для исполнителей моего класса. Есть ли способ сделать это?
Что-то вроде этого было бы неплохо (но этот конкретный код неверен):
class MyGeneric<G extends SomeGeneric<T extends SomeClass>>
{
public G returnSomeGenericImpl(){}
public T returnSomeClassImpl(){}
}
Если бы я был неясен, я с удовольствием попробую уточнить мои намерения.