这里的值是一个Minimal, Complete, and Verifiable example:
HashMap<String, String> config = new HashMap<String, String>();
config.put("key1", "val1");
config.put("key2", "val2");
System.out.println(config);
System.out.println("result " + config.get("key1"));
输出
{key1=val1, key2=val2}
result val1
正如你所看到的,result
打印精细,但打印地图而不是显示=
标志周围的任何空格。
所以,就看你表现了什么:
HashMap<String, String> config = new HashMap<String, String>();
config.put("key1 ", " val1");
config.put("key2 ", " val2");
System.out.println(config);
System.out.println("result " + config.get("key1"));
输出
{key1 = val1, key2 = val2}
result null
这正是反映你所看到的,也显示了问题的关键尾随空间。
您确定密钥确实具有与其相关的值吗?你可以用'key.trim()'再次检查吗? – alok
btw。你不需要类型转换(String)。 –
它可能是密钥不存在。另外令我困惑的是'(String)config.get(key);',如果你的'HashMap'是这样定义的,你为什么要键入cast?这导致我认为可能会有某些事情是假的。 –
SomeJavaGuy