我正在阅读AngelikaLangerGenericsFaq的多级通配符。我对语法很困惑。文件说
该类型
Collection<Pair<String,?>>
是泛型 Collection 接口的具体实例。它是不同类型对的异构集合。它可以包含Pair<String,Long>
,Pair<String,Date>
,Pair<String,Object>
,Pair<String,String>
, 等类型的元素。换句话说,Collection<Pair<String,?>>
包含对不同类型的表单的混合Pair<String,?>
。该类型
Collection<? extends Pair<String,?>>
是通配符参数化类型;它不代表具体的参数化类型。它代表集合家族中的一个代表,它们是 Collection 接口的实例化,其中类型参数的形式为Pair<String,?>
。兼容的实例是Collection<Pair<String,Long>>
、Collection<Pair<String,String>>
、Collection<Pair<String,Object>>
或Collection<Pair<String,?>>
。换句话说,我们不知道它代表 Collection 的哪个实例化。根据经验,您必须自上而下阅读多级通配符。
我对以下几点感到困惑。
- 有人可以举例说明这三个引用吗?我完全迷失在语法中
- 文件说, para-1 是泛型类型的具体实例化,而 other 不是具体实例化?那个怎么样?
- 自上而下阅读通配符是什么意思?
- 多级通配符有什么好处?
有人可以详细说明这些观点。谢谢。