-5

非常简单的代码......不起作用,我不知道为什么:)

String appserver="";
HashMap hm = new HashMap();
hm.put("APPSERVER101", "node101");
hm.put("APPSERVER103", "node102");
hm.put("APPSERVER105", "node103");
hm.put("APPSERVER107", "node104");
hm.put("APPSERVER201", "node108");
hm.put("APPSERVER203", "node110");

...

appserver = rs_g.getString("APPSERVER");

...

out.println("<tr><td class=\"good\">" + hm.get(appserver) + "</td>");

结果为NULL,但如果我手动设置它:

out.println("<tr><td class=\"good\">" + hm.get("APPSERVER101") + "</td>");

我得到了正确的结果

4

2 回答 2

3

尝试使用修剪hm.get(appserver)以确保没有多余的空格导致问题。还尝试打印appserver变量的值以确保它包含而不包含"APPSERVER101"其他内容。

于 2013-06-10T12:37:56.220 回答
0

rs_g.getString("APPSERVER");不得返回 value "APPSERVER101",否则表达式hm.get(appserver)hm.get("APPSERVER101")将返回相同的结果。

get 方法中发生的所有事情都是将传递的值与映射中的每个键进行比较。如果该值与任何键之间不匹配,那将是因为传递的值与 .equals() 方法判断的任何键不同(在字符串的情况下)

于 2013-06-10T12:43:40.473 回答