Java Map - 整数值转换为字符串

标签 java dictionary 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 - 相同的结果。

您能友善地向我解释一下发生了什么吗?

最佳答案

你确定吗someIntegerValueint/Integer ?添加

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

并告诉我们它输出什么。

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

关于Java Map - 整数值转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25936809/

相关文章:

Java 流 : Extend Built-In Collector

swift - 有没有办法可以将 KVP 字典转换为字符串?

python - 获取字典中最小值对应的键

c++ - std::tr1::shared_ptr 和 dynamic_cast

java - 在 JDialog 中放弃控制

java - jboss 7.1 xalan 问题?

java - 嵌套0​​x104567910循环,结果困惑

python - 在 Dicts 中查找具有相同值的所有关键元素

c# - 将项目集合从列表框转换为通用列表

c# - 在 C# 中转换类