我对协方差和相反性有些困惑。我们是否说过在Java中使用? super X
时通常是矛盾的。
现在读我的书,我了解以下概念:
这是反变的:
method(Predicate<? super X> pred)
但是这是协变的:
method(List<? super X> list) //And then we use add for a list of course
这个概念没有明确地写成我要问你的方式,所以我想知道,这个定义正确吗?如果是,那么如果第一个是协变的,为什么最后一个是协变的,为什么两者都使用super
呢?