0

我的场景:我有一个 servlet 和两个普通类。X servlet y 类 Z 类。

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);

结果为空。任何人都可以解释为什么它会导致空值。

4

1 回答 1

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();
于 2013-09-14T14:31:46.297 回答