类型
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是通用类型的具体实例化,而其他则不是具体实例化?这是怎么回事?
- “自上而下”读取通配符是什么意思?
- 多级通配符的优势是什么?
有人能够详细解释这些问题吗?谢谢。