对不起,如果我的问题不是新问题,但我找不到。
现在我正在阅读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>
。但是我不确定。有人可以用更多详细信息和示例对此进行解释。
预先感谢。
答案 0 :(得分:2)