在我的一个课程中说测试,在静态块中;我正在使用BakidRangeid类型的对象作为键并使用Integer作为值来构造映射。我的hashmap声明如下所示。
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的实例从hashmap mapBankIdRangeIdToConfId获取值时,我得到NullpointerException,尽管具有bankid和rangeid值的对象,我传递的对象存在于hashmap中。我想我将不得不重写我的BakidRangeid类的equals和hashcode方法。任何人都确认。提前谢谢!
答案 0 :(得分:1)
请在BakidRangeid类中使用hashCode()
和equals()
方法。
请参阅此link
答案 1 :(得分:1)
在用作hashmap中的键之前覆盖等于BakidRangeid类的方法。