【发布时间】:2019-07-20 09:35:32
【问题描述】:
抱歉,如果我的问题不是新问题,但我找不到。
现在我正在阅读 jls8,但我无法理解其中的一个定义。在8.1.5 Superinterfaces章节中我遇到了这个
给定一个泛型类声明C<F1,...,Fn> (n > 0),直接超接口
参数化类类型C<T1,...,Tn>,其中 Ti (1 ≤ i ≤ n) 是一个类型,都是类型
I<U1 θ,...,Uk θ>,其中I<U1,...,Uk> 是C<F1,...,Fn> 的直接超接口,θ 是
替换 [F1:=T1,...,Fn:=Tn]。
如果我理解正确,这个定义意味着我可以分配List<String> = ArrayList<String>,但不能分配例如List<String> = ArrayList<Integer>.但我不确定。有人可以用更多细节和例子来解释这一点。
提前致谢。
【问题讨论】: