Java 为我提供<? extends class>
了一种过滤 Java 类的方法,在这种情况下,您可以使用这些类来构建新的 HashMap,例如:
我可以这样做:
Map<String,? extends Serializable> map1 = new HashMap<String,String>();
没错,因为String实现了Serializable,所以编译器让我这么做。
但是当我尝试这样做时:
Map<String,GenericClass<? extends Serializable>> map2 = new HashMap<String, GenericClass<String>>();
作为 GenericClass :
public class GenericClass<T>
{
.
.
.
}
编译器抛出一个错误说:
Type mismatch: cannot convert from HashMap<String,GenericClass<String>> to Map<String,GenericClass<? extends Serializable>>
我想知道,发生了什么?
也许编译器无法检测到扩展类是泛型类型的一部分。