非常简单的代码......不起作用,我不知道为什么:)
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>");
我得到了正确的结果
答案 0 :(得分:3)
尝试使用hm.get(appserver)
修剪以确保没有多余的空格导致问题。同时尝试打印appserver
变量的值,以确保它包含"APPSERVER101"
而不包含任何其他内容。
答案 1 :(得分:0)
rs_g.getString("APPSERVER");
不得返回值"APPSERVER101"
,否则表达式hm.get(appserver)
和hm.get("APPSERVER101")
将返回相同的结果。
get方法中发生的所有事情都是将传递的值与地图中的每个键进行比较。如果该值与任何键之间不匹配,那将是因为传递的值与.equals()方法判断的任何键不同(在字符串的情况下)