你可以查看下源码,Map<K,V>是接口,并没有实现Collection接口,定义时通常格式:
Map<String,String> m = new HashMap<String,String>();
HashMap的对象向上转型为Map,而且,HashMap也没有实现Collection接口
HashMap中values方法:
- public Collection<V> values() {
- Collection<V> vs = values;
- return (vs != null ? vs : (values = new Values()));
- }
复制代码
List<String> l = (List<String>) a.values(); // 可以通过编译,但运行时会报出ClassCastException异常,因为这是不安全的向下转型。 |