【发布时间】:2016-07-07 23:06:44
【问题描述】:
在我的一堂课中说测试,在它的静态块中;我正在使用 BakidRangeid 类型的对象作为键和整数作为值来构造地图。我的 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 方法。任何人都请确认。提前致谢!
【问题讨论】:
-
是的,我可以确认你需要实现
equals和hashCode。 -
如您所说,您是否尝试过覆盖哈希码方法?