Java 从地图检索对象
伙计们,这很傻,但我得问问 您有一个私有映射dbMap=newhashmap 我在阅读完文件后将这些内容放入,如: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
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