Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!
Если вы ответили — Number и его любого наследника, то вы ошиблись. Ответ — ничего!
Строго говоря, туда можно записать null
Stream<T> extends BaseStream<T, Stream<T>>
BaseStream<T, S extends BaseStream<T, S>> {
S parallel();
S sequential();
}
S parallel();
S sequential(); возвращали бы просто BaseStream, в котором нет методов интерфейса Stream. Поэтому, чтобы пользоваться методами предка, как если бы они были методами самого интерфейса есть вот такой подход. Его обычно называют рекурсивные дженерики
Нетривиальные проблемы с generic'ами и возможные решения