我正在阅读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 不是具体实例化?那个怎么样?
- 自上而下阅读通配符是什么意思?
- 多级通配符有什么好处?
有人可以详细说明这些观点。谢谢。