Java 有界wilcard不适用于地图中插入的列表

Java 有界wilcard不适用于地图中插入的列表,java,wildcard,nested-generics,Java,Wildcard,Nested Generics,以下代码解释了我的问题: interface f1 {} interface f2 extends f1{} 1. List<? extends f1> l1 = new ArrayList<f2>(); 2. Map<String, ? extends f1> m1 = new HashMap<String, f2>(); 3. Map<String, List<? extends f1>> m2 = new H

以下代码解释了我的问题:

interface f1 {}

interface f2 extends f1{}


1. List<? extends f1> l1 = new ArrayList<f2>();

2. Map<String, ? extends f1> m1 = new HashMap<String, f2>();

3. Map<String, List<? extends f1>> m2 = new HashMap<String, List<f2>>();
接口f1{}
接口f2扩展f1{}
1.列表使用


非常感谢。这很有效。你能解释一下这背后的逻辑吗?当你不使用通配符时?您只指定一种特定类型,即。g、 ,字符串。不能执行类似List l=new ArrayList()的操作;嵌套类型参数也会发生同样的情况。您有一个包含字符串和从列表扩展而来的内容的映射,该列表包含从f1扩展而来的内容。
Map<String, ? extends List<? extends f1>> m2 = new HashMap<String, List<f2>>();