這裏的值是一個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