2013-06-16 2 views
0

Я пытаюсь написать метод, который получает B, который расширяет SearchBoard(interface), и M, который расширяет BoardMove(interface).Дженерики в Java и расширяющие классы

Теперь я написал CrossWord(interface) и MyCrossWord, который реализует CrossWord, но мой метод не готов признать MyCrossWord как законным SearchBoard OBJ .. Я знаю, что я сделал что-то не так с где-дженериков.

+3

написать код .... – NINCOMPOOP

+5

Пожалуйста, объясните это явление, добавив конкретную классовую структуру, а не объясняя ее лингвистически. – Lion

+0

Если 'MyCrossWord' реализует' CrossWord', почему его следует распознать как 'SearchBoard'? «CrossWord» также расширяет «SearchBoard»? –

ответ

0
<B extends SearchBoard, M extends BoardMove> void someMethod(B board, M move) { 
... 
} 

Пока B либо SearchBoard, CrossWord или MyCrossWord, он должен принять MyCrossWord в качестве первого аргумента.

+0

Это совершенно бессмысленно. Вы также можете написать 'void someMethod (панель SearchBoard, перемещение BoardMove) {'. –

+0

Это не совсем то же самое, но в любом случае это похоже на то, что он описал, что он делает. В любом случае он должен принять экземпляр MyCrossWord, если он реализует CrossWord, который расширяет SearchBoard. Кроме того, я написал параметры типа как параметры типа метода здесь, чтобы сделать его коротким, но они могут быть параметрами класса. – herman