java - 初始化空 HashMap

标签 java hashmap

我写过很多 JavaScript,所以请多多包涵。

我有 3 个 HashMap,我在不同类的方法中引用了它们。我的代码(非常简单)如下所示:

public class MainClass {
    private HashMap<String,Nation> randomHashMap = new HashMap<String,Nation>();
    DifferentClass d = new DifferentClass(this);
} //with getters/setters

public class DifferentClass {
    private MainClass mc;
    public void randomMethod() {
        System.out.println("randomHashMap is " + (mc.getRandomHashMap() == null));
    } //returns null
    public DifferentClass(MainClass c) {
        this.mc = c;
    }
} 

但是,当我在其他方法中调用它们时,它们为空。

如何创建一个新的空 HashMap?

最佳答案

DifferentClass#randomMethod 方法中使用它之前,您需要初始化您的 MainClass mc 变量。另外,请确保您使用的是 mc 变量而不是 MainClass.getRandomHashMap() 方法(根据您的实际代码,我们不知道它的行为方式)。您的代码将如下所示:

public class DifferentClass {

    private MainClass mc = new MainClass();

    public void randomMethod() {
        //assuming getRandomHashMap is the getter of randomHashMap attribute (and non static)
        System.out.println("randomHashMap is " + (mc.getRandomHashMap() == null));
    }
}

public class MainClass {
    private HashMap<String,Nation> randomHashMap = new HashMap<String,Nation>();
    DifferentClass d = new DifferentClass(this);

    public HashMap<String,Nation> getRandomHashMap() {
        return this.randomHashMap;
    }
} //with getters/setters

关于java - 初始化空 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13438630/

相关文章:

java - 将 HashMap 传递给递归方法不起作用?

java - 为什么 HashMap 使用 TreeNode 作为非 Comparable 键?

java - putAll() 之后 TreeMap 中缺少值

java - 如何将 List 转换为 HashMap

java - Android 应用程序-将对象作为额外 Intent 传递与使用公共(public)成员变量

java - 将未使用的异常添加到 'throws'

java - 如何在不使用 instanceof 的情况下查找类型?

java - 使用可序列化对象中的 spring bean

java - 通过 GET 查询访问 Web 服务的简单方法?

使用递归 Hashmap 的 Java 泛型类型安全警告