我的情景: 我有一个servlet和两个普通的类。 X servlet y Class Z Class。
X Servlet code :
Y y=new Y();
y.setMap(Map);//Value exists for Map[Found out by sysout]
Y Class :
public void setMap(HashMap<String,String> hash){
this.hash=hash;
System.out.println("Set:::"+this.hash.toString());
}
public HashMap<String, Boolean> getMap(){
System.out.println("Bean Class:::"+hash.toString());
return hash;
}
Z Class:
Y bean=new Y();
HashMap result=bean.getMap();
System.out.println(result);
结果为null。 任何人都可以解释为什么它会导致null。
答案 0 :(得分:1)
你可以像这样使Y.setMap
静态。
class Y {
private static HashMap<String, Object> map;
public static void setMap(HashMap<String, Object> hash) {
map = hash;
}
public static HashMap<String, Object> getMap() {
return map;
}
}
您的servlet可以设置地图,例如
Y.setMap(map);
其他课程可以使用
到达HashMap<String, Object> result = Y.getMap();