从不同类访问Java hashmap
我在一个类中有一个带有setter和getter的HashMap,当我试图从不同的类访问它时,我得到的是null 如何从不同的类访问HashMap? 这是密码从不同类访问Java hashmap,java,hashmap,Java,Hashmap,我在一个类中有一个带有setter和getter的HashMap,当我试图从不同的类访问它时,我得到的是null 如何从不同的类访问HashMap? 这是密码 public class test { private HashMap<String, String> test= new HashMap<String, String>(); public void settest(String key, String value) { tes
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"));
}
公共类测试{
私有HashMap test=newhashmap();
公共void settest(字符串键、字符串值){
测试。输入(键、值);
}
公共字符串gettest(字符串键){
返回测试get(key);
}
}
公共b级{
测试ts=新测试();
ts.settest(“地点”、“芝加哥”);
}
公共c类{
测试ts=新测试();
System.out.println(ts.gettest(“位置”);
}
在c类中,我得到的输出为null,您创建了两个不同的
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"));
}
公共类测试{
私有静态HashMap test=newhashmap();
公共void settest(字符串键、字符串值){
测试。输入(键、值);
}
公共字符串gettest(字符串键){
返回测试get(key);
}
}
公共b级{
测试ts=新测试();
ts.settest(“地点”、“芝加哥”);
}
公共c类{
测试ts=新测试();
System.out.println(ts.gettest(“位置”);
}
test,请看一看(撇开代码不可编译的问题不谈)您创建了两个test
实例,每个实例都有自己的映射。在一个映射中放置一个键,然后尝试从另一个映射中检索它。类b
中的变量ts
与类c
中的变量ts
无关。这些是测试的不同实例。