从地图获取价值(使用Java 1.4)
问题描述:
我目前正在研究一些旧的遗留应用程序,并且必须使用Java 1.4,现在已经有EOL好几年了。我需要从地图中获取价值。我的地图看起来是这样的:从地图获取价值(使用Java 1.4)
Key | Value
---------------
String1 | int1
String2 | String6
String3 | Float1
String4 | String7
String5 | Object1
我尝试以下,但我不断收到一个空
String myVal = (String) map.get(String2);
是否有可能得到一个值,而不使用迭代器?
答
你应该得到你报告方式的价值,这是完全正确的:
String myVal = (String) map.get("myKey");
只要在地图里面有该密钥。
问题与您报告的地图方案一样,地图可能包含String,Float或其他值类型,因此直接将其转换为String是危险的。你应该检查值类型:
Object myValObj = map.get("myKey");
if (myValObj instanceof String) {
// Handle the string
} else if (myValObj instanceof Float) {
// Handle the float
} // ....
+0
谢谢你的回答西蒙娜,事实证明我是在我的地图存储值为“”MyString“”而不是“MyString”。我想我应该多睡一会。 – Native 2014-10-03 14:39:22
如果你得到一个空值,那是因为你的地图不包含'myString'键。请注意,你已经显示它的方式,你有相同的关键5次......听起来不太可能。请展示一个简短但完整的程序来展示问题。 – 2014-10-03 14:30:31
如果它不是一个String,那么你只会得到一个'ClassCastException'。 – EpicPandaForce 2014-10-03 14:31:05
嗨,乔恩,我已经编辑了一个更清晰的解释问题。我不必担心类转换异常,因为这些键是常量。我知道我每次都得到什么。谢谢你的投入。 – Native 2014-10-03 14:47:50