gpt4 book ai didi

java - HashMap 中的整数对象

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

  1. 创建一个 (String, Object) hashMap 并放入不同类型的值。
  2. 将 hashmap 序列化为 json 字符串,然后转换回 (String, String) 的 hashmap

当我尝试获取键“key2”的值时,它会抛出一个异常,提示“线程“main”中的异常 java.lang.ClassCastException:java.lang.Integer 无法转换为 java.lang.String” .

有什么好的方法可以解释一下吗?这是否意味着即使我有一个 (String, String) 映射,其中的值也不是必需的 String?

对于任何困惑,我们深表歉意。如果有不清楚的地方请告诉我。

Map<String, Object> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", 99);
map.put("key3", new Date());


JsonUtil jsonUtil = new JsonUtil();

String s = jsonUtil.toJson(map);

HashMap<String, String> newMap = jsonUtil.fromJson(s, HashMap.class);

String value = newMap.get("key2");

最佳答案

在map中,键“key2”的值为99,它是一个整数。异常可能是在倒数第二行而不是最后一行中引发的。我不完全确定为什么要序列化然后立即反序列化,但如果您只想将 99 作为像“99”这样的字符串,则执行此操作的方法是:

String value = String.valueOf(map.get("key2"));

在这种情况下,序列化和反序列化是不必要的。

更好的是,如果您只想要 Map<String, String>在整个过程中,你可以这样做:

Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", String.valueOf(99));
map.put(new Date().toString());

关于java - <String, String> HashMap 中的整数对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42264846/

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