Java 将整数转换为字符串中的字符串,对象hashmap

Java 将整数转换为字符串中的字符串,对象hashmap,java,Java,如果我有一个HashMap,其中有三个条目是,一个条目是,有没有一种方法可以轻松地将其“转换”到HashMap中?现在,我正在创建一个新的HashMap并复制所有的值,以便在复制过程中转换整数。应该能够强制转换它,但在尝试从映射中检索一个整数时会出现异常 我想你要问的是转换hashmap的内容,在本例中是值,所以它们都以字符串的形式出现,这是不会发生的 最好的解决方案是在首先填充贴图时将整数转换为字符串。您可以强制转换原始贴图,无需复制: map.put("intKey", map.get("i

如果我有一个
HashMap
,其中有三个条目是
,一个条目是
,有没有一种方法可以轻松地将其“转换”到
HashMap
中?现在,我正在创建一个新的HashMap并复制所有的值,以便在复制过程中转换整数。

应该能够强制转换它,但在尝试从映射中检索一个整数时会出现异常

我想你要问的是转换hashmap的内容,在本例中是值,所以它们都以字符串的形式出现,这是不会发生的


最好的解决方案是在首先填充贴图时将整数转换为字符串。

您可以强制转换原始贴图,无需复制:

map.put("intKey", map.get("intKey").toString());
Map<String, String> fixedMap = (Map) map;
map.put(“intKey”,map.get(“intKey”).toString());
地图固定地图=(地图)地图;

看起来你的设计确实有问题。最好先修复将整数推入映射的代码,这样您就不需要在下游处理这种诡计。

类似的操作应该更容易:

 Class<? extends Object> className = obj.getClass();

  if (className.getName().contains("String")){
    //add the object      
  }else {
   //convert it to String and then add to HashMap
  }

Class如果您使用的是Java8,那么可以将forEach与BiConsumer一起使用

查看下面的代码

Map<String, Object> map = new HashMap<>();
map.put("a", "a");
map.put("b", "b");
map.put("1", Integer.valueOf(1));

map.forEach((k, v) -> map.put(k, v.toString()));
Map Map=newhashmap();
地图放置(“a”、“a”);
地图放置(“b”、“b”);
map.put(“1”,Integer.valueOf(1));
map.forEach((k,v)->map.put(k,v.toString());

map.forEach((k,v)->map.put(k,v.toString())之后映射中的所有值都是字符串。当然,循环仍然存在,但您正在使用语言功能/资源。

不清楚您试图解决的问题。您是否尝试过使用映射并将整数作为字符串放在首位?将
整数
作为
字符串
。创建一个可以识别字符串是否也是整数的函数也会很有帮助。我希望没有人在其中添加
NotAString
!如果你采用这种方法,为什么不检查
If(String.class.equals(obj.getClass())
?@yshavit这就是他说的,他需要将整数转换为strings我的观点是,检查类名是否包含“String”太宽了。除了java.lang.String之外,还有其他类与之匹配。