【发布时间】:2011-04-21 03:23:01
【问题描述】:
在 Java 中,协方差允许 API 设计者指定实例可以泛化为某种类型或该类型的任何子类型。例如:
List<? extends Shape> shapes = new ArrayList<Circle>();
// where type Circle extends Shape
逆变换反了。它允许我们指定一个实例可以泛化为某种类型或超类型。
List<? super Shape> shapes = new ArrayList<Geometry>();
// where Shape extends Geometry
Java 泛型的逆变性有何用处?你会选择什么时候使用它?
【问题讨论】:
标签: java generics contravariance