Типовая ссылка на Java

1

Я просто споткнулся о ситуации, я думаю, что раньше не пробовал. У меня есть это:

class A<DATA>

class B extends A<SomeSpecificDataClass>

Теперь я хочу объявить третий класс следующим образом:

class C <T extends A<DATA>{
    public someMethod(T instance, DATA data){}
}

Я знаю, что могу просто спросить экземпляр для его данных, но для API, который я создаю, я бы ДЕЙСТВИТЕЛЬНО предпочел иметь такой синтаксис. Есть идеи, как это сделать?

Заранее спасибо.

  • 3
    Таким образом, DATA будут еще один общий? Ну, вы можете объявить только class C<DATA, T extends A<DATA>> .
  • 0
    Прочтите этот учебник по Oracle Java .
Показать ещё 1 комментарий
Теги:
generics

1 ответ

2
Лучший ответ

Поскольку DATA будет другим общим, тогда вы должны объявить, что класс использует два генерических файла:

class C<DATA, T> {
}

Затем вы можете определить другие требования для T на основе DATA:

class C<DATA, T extends A<DATA>> {
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню