【发布时间】:2015-10-20 06:22:14
【问题描述】:
当我将 Collections.synchronizedMap() 转换为哈希映射时,它会返回类转换异常,但是当我将 Map 转换为哈希映射时,它工作正常。
据我了解,Collections.synchronizedMap() 也返回 map 。
那为什么我会得到这个异常。
如何克服它。
示例代码
public class Main_1 {
public static void main(String[] args) throws UnknownHostException, IOException {
Map m = new HashMap();
m.put("sachin", "sacjdeva");
// Throws exception here
HashMap hm = (HashMap) Collections.synchronizedMap(m);
//No exception
HashMap hm = (HashMap)(m)
System.out.println(hm);
}
}
好的,如果它的 synchronizedMap 并抛出类转换异常,我可以将此 SynchronizedMap 转换为 HashMap。
【问题讨论】:
-
Map是一个接口,但HashMap是实现类型。所以最好将其转换为Map -
您不能将接口转换为实现接口类,您可以调用 hashmap 构造函数,将该映射作为输入。
标签: java collections