我写过很多 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/