Я знаю, что можно добавить несколько ограничений в определение общего класса, например:
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(){}
}
Если бы я был неясен, я с удовольствием попробую уточнить мои намерения.