从地图中检索对象

时间:2011-02-12 00:44:28

标签: java map

伙计们,这很傻,但我得问问

你有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

1 个答案:

答案 0 :(得分:5)

您正在打印出keySet()而不是Map(根据代码),因此您的键看起来像“MAX_DB_CONNECTIONS = something”等(或者整个事情是关键) - 但您希望键是“MAX_DB_CONNECTIONS” ”。 因此,您正在错误地构建Map(或者您要求填充它的库)。

如果从属性文件中读取这些内容,可能是您使用了错误的分隔符?