我在一个类中有一个带有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中,我退出为空
答案 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"));
}