我正在尝试在可全局使用的支持 bean 中创建一个可变映射。以下是我的使用方式:
private Map<Object, Date> myMap;
public void myMethod(){
getMyMap().put(myObject, myDate);
//I have also tried the following with the same results:
//myMap.put(myObject, myDate);
}
//setter
public void setMyMap(Map<Object, Date> myMap) {
this.myMap= myMap;
}
//getter
public Map<Object, Date> getMyMap() {
return myMap;
}
myMap 的 setter 和 getter 是从我正在使用的程序自动生成的(autogen'd sets and gets work for everything else)。
错误出现在我尝试填充 map 时。它返回空指针异常。代码显然已简化,但如果您需要更多信息,我很乐意提供。
我的问题已通过以下方法解决:
private Map<Object, Date> myMap = new HashMap<Object, Date>();
public void myMethod(){
myMap.put(myObject, myDate);
}
如果有人有更多建议,我将非常乐意听到。
最佳答案
我几乎可以肯定您这里存在设计缺陷。很少为 map
提供 getter 和 setter。您可能应该将 map
作为构造函数参数并公开 put
和 get
方法。例如,这将清除此错误的可能性。
关于java - 在 Java 中构建 Map 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14224126/