以下代码解释了我的问题:
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>>();
没有。 1和2工作但没有。 3给出了eclipse错误。它说: Type mismatch: cannot convert from HashMap<String,List<f2>> to Map<String,List<? extends f1>>
你可以帮我找出原因。
答案 0 :(得分:3)
使用
Map<String, ? extends List<? extends f1>> m2 = new HashMap<String, List<f2>>();