Java: является ли параметр обобщенного типа списков ковариантным или контравариантным при потреблении? - PullRequest
4 голосов
/ 15 мая 2019

Я немного запутался по поводу ковариации и контравариантности. Говорим ли мы, что в Java что-то обычно противоречиво, когда мы используем ? super X.

Теперь, читая мою книгу, я понял следующую концепцию:

это противоречиво:

method(Predicate<? super X> pred)

но этот ковариантный:

method(List<? super X> list)  //And then we use add for a list of course

Эта концепция написана не совсем так, как я вас спрашиваю, поэтому я хочу знать, верно ли это определение? Если да, то почему первый является контравариантным, а последний - ковариантным, если оба используют ключевое слово super?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...