2016-03-21 3 views
1

В одном из моих классов говорят Test, в статическом блоке; Я строю карту, используя объект типа BakidRangeid как key, а Integer - как значение. Моя декларация hashmap выглядит, как показано ниже.Получить целочисленное значение из ключа Object 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; 
} 

}

Когда я пытаюсь получить значение из HashMap mapBankIdRangeIdToConfId установки экземпляра BakidRangeid, я получаю NullPointerException несмотр объекта с значения bankid и rangeid, которые я пропускаю, присутствуют в хэшмапе. Думаю, мне придется переопределить методы equals и hashcode моего класса BakidRangeid. Любой любезно подтвердит. Заранее спасибо!

+3

Да, я могу подтвердить, что вам нужно реализовать 'equals' и' hashCode'. – Thilo

+0

Как вы заявили, вы пытались переопределить метод hashcode? – TonyH

ответ

1

переопределение равен метод класса BakidRangeid перед использованием в качестве ключа в HashMap.

1

Используйте метод hashCode() и equals() в классе BakidRangeid.

См этот link

Смежные вопросы