Pull to refresh

Comments 8

Если вы ответили — Number и его любого наследника, то вы ошиблись. Ответ — ничего!

Строго говоря, туда можно записать null

Интересно, а много ли есть ситуаций, когда требуется применять wildcard, которые выходили бы за пределы принципа PECS?
Поправьте ошибочку в третьем листинге:? extends Number.
У вас не хватает буквы «s».
Ещё нетривиальный пример со стримами где интерфейс Stream расширяет BaseStream<T, Stream>
Не приходилось с таким встречаться, опиши в комментариях, добавлю
Имеем следующую структуру
Stream<T> extends BaseStream<T, Stream<T>> 

BaseStream<T, S extends BaseStream<T, S>> {
    S parallel();
    S sequential();
}

В результате если бы Stream не расширял бы BaseStream от себя, то методы
S parallel();
S sequential();
возвращали бы просто BaseStream, в котором нет методов интерфейса Stream. Поэтому, чтобы пользоваться методами предка, как если бы они были методами самого интерфейса есть вот такой подход. Его обычно называют рекурсивные дженерики
Как вы над типом повесили аннотацию Query?
Она же применима только к полям и другим аннотациям.
Sign up to leave a comment.

Articles