Java 实现扩展接口J的接口I的类B是否也扩展类型I?
代码让我感到困惑:Java 实现扩展接口J的接口I的类B是否也扩展类型I?,java,class,map,interface,implementation,Java,Class,Map,Interface,Implementation,代码让我感到困惑: Collection<? extends Map<String, String>> a = new ArrayList<SortedMap<String, String>>(); SortedMap<String, String> b = new TreeMap<String, String>(); b.put("1","a"); 类型集合>中的方法
Collection<? extends Map<String, String>> a =
new ArrayList<SortedMap<String, String>>();
SortedMap<String, String> b = new TreeMap<String, String>();
b.put("1","a");
类型集合>中的方法add(capture#2-of?extends Map)不适用于参数(SortedMap)
为什么?SortedMap扩展了Map,TreeMap是一个实现SortedMap的类。这意味着
Collection<? extends Map<String, String>> a ;
如果将a
更改为
Collection<SortedMap<String, String>> a = new ArrayList<SortedMap<String, String>>();
Collection a=newarraylist();
可以添加b
,因为它是这种类型。这意味着
Collection<? extends Map<String, String>> a ;
如果将a
更改为
Collection<SortedMap<String, String>> a = new ArrayList<SortedMap<String, String>>();
Collection a=newarraylist();
可以添加
b
,因为它是这种类型。为什么我不能说?扩展映射的每个类型都将是有效的。@user710818这不是所说的吗?扩展
意味着。这并不意味着任何子类都是有效的,它意味着子类是未知的。看看我的例子,我明白了。谢谢!为什么我不能说?扩展映射的每个类型都将是有效的。@user710818这不是所说的吗?扩展
意味着。这并不意味着任何子类都是有效的,它意味着子类是未知的。看看我的例子,我明白了。谢谢!