来自不同类的Java哈希图访问

时间:2019-01-11 23:08:59

标签: java hashmap

我在一个类中有一个带有setter和getter的HashMap,当我尝试从其他类访问它时,我得到了空值

我如何从不同的类访问HashMap? 这是代码

public class test {

    private HashMap<String, String> test= new HashMap<String, String>();

    public void settest(String key, String value) {
        test.put(key, value);
    }

    public String gettest(String key) {
        return test.get(key);       
    }

}

public class b{
    test ts=new test();
    ts.settest("location","Chicago");
}


public class c{
    test ts=new test();
    System.out.println(ts.gettest("location"));
}

在班级c中,我退出为空

1 个答案:

答案 0 :(得分:2)

您已经创建了test类的两个不同实例,因此它们的HashMap也将有所不同。

我不知道您的最终目标,但是一种解决方案是将HashMap定义为静态字段。在这种情况下,test类的这两个实例将使用公共的HashMap。

您修改的代码:

public class test {

    private static HashMap<String, String> test= new HashMap<String, String>();

    public void settest(String key, String value) {
        test.put(key, value);
    }

    public String gettest(String key) {
        return test.get(key);       
    }

}

public class b{
    test ts=new test();
    ts.settest("location","Chicago");
}


public class c{
    test ts=new test();
    System.out.println(ts.gettest("location"));
}