伙计们,这很傻,但我得问问
你有private Map<String, String> dbMap = new HashMap<String, String>();
我在读完文件后把东西放进去了:
while ((line = br.readLine()) != null) {
...
int ix = line.indexOf("=");
String key = line.substring(0, ix);
String value = line.substring(ix + 1, line.length());
...
dbMap.put(key, value);
}
完成后,打印出来,地图会显示内部的内容
System.out.println(fc.getDbMap().keySet());
{MAX_DB_CONNECTIONS = something, DATABASE_PASSWD = something else}
当我尝试将值分配给特定键时,我确实为null,当确实存在键时
为什么?
System.out.println(fc.getDbMap().containsKey("DATABASE_PASSWD"));
false
System.out.println(fc.getDbMap().get("DATABASE_PASSWD"));
null
答案 0 :(得分:5)
您正在打印出keySet()而不是Map(根据代码),因此您的键看起来像“MAX_DB_CONNECTIONS = something”等(或者整个事情是关键) - 但您希望键是“MAX_DB_CONNECTIONS” ”。 因此,您正在错误地构建Map(或者您要求填充它的库)。
如果从属性文件中读取这些内容,可能是您使用了错误的分隔符?