从地图中检索对象

Jam*_*sev 1 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);
        }
Run Code Online (Sandbox Code Playgroud)

完成后,打印出来,地图会显示内部的内容

System.out.println(fc.getDbMap().keySet());

{MAX_DB_CONNECTIONS = something, DATABASE_PASSWD = something else}
Run Code Online (Sandbox Code Playgroud)

当我尝试将值赋给特定键时,我得到null,当确实存在键时

为什么?

System.out.println(fc.getDbMap().containsKey("DATABASE_PASSWD"));
false

System.out.println(fc.getDbMap().get("DATABASE_PASSWD"));
null
Run Code Online (Sandbox Code Playgroud)

Sta*_*Man 5

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

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