Java 从地图检索对象

Java 从地图检索对象,java,map,Java,Map,伙计们,这很傻,但我得问问 您有一个私有映射dbMap=newhashmap 我在阅读完文件后将这些内容放入,如: while ((line = br.readLine()) != null) { ... int ix = line.indexOf("="); String key = line.substring(0, ix); String value = line.substring(ix + 1, line.le

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

您有一个私有映射dbMap=newhashmap

我在阅读完文件后将这些内容放入,如:

  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

为什么?


您正在打印密钥集,而不是按照代码打印映射,因此您的密钥看起来像MAX_DB_CONNECTIONS=something等等,或者可能整个东西都是密钥-但是您希望密钥是MAX_DB_CONNECTIONS。 因此,您正在错误地构建地图或要求填充的库


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

您正在打印密钥集,而不是按照代码打印映射,因此您的密钥看起来像MAX\u DB\u CONNECTIONS=something等,或者可能整件事都是密钥-但您希望密钥是MAX\u DB\u CONNECTIONS。 因此,您正在错误地构建地图或要求填充的库


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

此处的信息不足。。。如何将内容放入映射中,如何确定打印的内容与试图调用containsKey的内容是同一映射?能否对fc.getDbMap执行sysout-这是否符合以下要求?{MAX_DB_CONNECTIONS=something,DATABASE_PASSWD=something}此处信息不足。。。如何将内容放入映射中,以及如何确定打印的内容与试图调用containsKey的内容是同一映射?能否对fc.getDbMap执行sysout-这是否符合以下要求?{MAX_DB_CONNECTIONS=something,DATABASE_PASSWD=something}
System.out.println(fc.getDbMap().containsKey("DATABASE_PASSWD"));
false

System.out.println(fc.getDbMap().get("DATABASE_PASSWD"));
null