Я хотел бы ограничить совместимые типы ввода метода набором определенных подклассов классов. Однако я хотел бы разрешить принятие только первого уровня подклассов. Например, класс «форма» имеет множество подклассов, например. «прямоугольник», «круг», «треугольник». Теперь у «прямоугольника» есть собственный подкласс «квадрат», так как же мне ограничить принятые коллекции, чтобы они принимали только иерархический уровень подклассов, состоящий из прямоугольника, круга и треугольника, не принимая квадрат?
0 shape
/ | \
1 rectangle circle triangle
|
2 square
Я знаю, что для охвата всех подклассов формы и их подклассов я бы сделал следующее:
public void methodName(List<? extends shape>){ ... }
Однако как бы я ограничил его только одним уровнем подклассов ниже формы? то есть ( только прямоугольник, круг, треугольник )
A
являетсяB
, это не обязательно означает, что класс, представляющийA
, должен расширять класс, представляющийB
. - person biziclop   schedule 24.02.2016