有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从不同类访问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) {
        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类中,我以null的形式输出


共 (1) 个答案

  1. # 1 楼答案

    您已经创建了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"));
    }