使用嵌套下限时Java泛型类型不匹配

时间:2017-10-11 18:28:29

标签: java generics contravariance

我无法理解为什么编译器不允许以下赋值:

Consumer<Collection<? super Project>> consumer = new Consumer<Collection<Project>>(){};

我通常理解如何使用“?super ...”并理解为什么它在这些类似的例子中工作正常:

Consumer<? super Project> projectConsumer = new Consumer<Project>(){};

Consumer<? super Project> objectConsumer = new Consumer<Object>(){};

甚至

Collection<? super Project> objectCollection = new ArrayList<Object>();

但是我不知道这些与第一个例子有何不同。  有人可以解释为什么第一个例子不能编译吗?

0 个答案:

没有答案