Java Map - 将Integer值转换为String

时间:2014-09-19 14:56:16

标签: java map casting

我完全糊涂了 - 请看下面的代码并输出:

Map<String, Object> strObjMap= new HashMap<>();
strObjMap.put(SOME_KEY_ONE, someIntegerValue);
strObjMap.put(SOME_KEY_TWO, someIntegerValue);
System.out.println(strObjMap.get(SOME_KEY_ONE).getClass().getCanonicalName());

我得到了java.lang.String。我尝试了Integerint - 结果相同。

请你如此善良并向我解释发生了什么事?

1 个答案:

答案 0 :(得分:4)

您确定someIntegerValueint / Integer吗?添加

System.out.println(someIntegerValue.getClass());

并告诉我们它的输出结果。

更大的问题是您的地图被声明为Map<String, Object>。请注意,该值为Object。因此编译器将允许任何对象类型为值,没有编译类型检查值。如果您的意图是仅允许整数值,请将声明更改为Map<String, Integer>