gpt4 book ai didi

java - Collections.synchronizedMap() 返回类转换异常,而法线贴图工作正常

转载 作者:行者123 更新时间:2023-12-01 22:03:38 25 4
gpt4 key购买 nike

当我将 Collections.synchronizedMap( ) 转换为 HashMap 时,它返回类转换异常,但是当我将 Map 转换为 HashMap 时,它工作正常。

根据我的理解 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。

最佳答案

Collections.synchronizedMap(m) 不会返回 HashMap,因此您无法将其转换为 HashMap。它返回一个 SynchronizedMap 实例。

您可以将其分配给 map :

Map smap = Collections.synchronizedMap(m);

在您的“法线 map ”示例中:

HashMap hm = (HashMap)(m);

不是“普通 map ”。不存在“法线 map ”这样的东西。

您可以在此处为其分配一个 HashMap 实例:

Map m = new HashMap();

这是您稍后可以将其转换为 HashMap 的唯一原因。

关于java - Collections.synchronizedMap() 返回类转换异常,而法线贴图工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33229389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com