在我的一个班级中,用静态块说“测试”。我正在使用BakidRangeid类型的对象作为键和Integer作为值来构造地图。我的哈希图声明如下所示。

public static HashMap<BakidRangeid, Integer> mapBankIdRangeIdToConfId = new HashMap<BakidRangeid, Integer> ();


BakidRangeid类看起来像

public class BakidRangeid {

private int bankId;
private int rangeId;

public int getBankId() {
    return bankId;
}
public void setBankId(int bankId) {
    this.bankId = bankId;
}
public int getRangeId() {
    return rangeId;
}
public void setRangeId(int rangeId) {
    this.rangeId = rangeId;
}


}

当我尝试通过设置BakidRangeid的实例从哈希图mapBankIdRangeIdToConfId中获取值时,尽管哈希表中存在我具有的bankid和rangeid值,但我还是得到了NullpointerException。我猜我将不得不重写BakidRangeid类的equals和hashcode方法。任何人都请确认。提前致谢!

最佳答案

在hashmap中用作键之前,请重写BakidRangeid类的equals方法。

09-26 23:42