2016-03-21 20 views
1

Sınıflarımdan birinde Test'in statik bloğunda olduğunu; BakidRangeid türünde bir nesne anahtar ve tamsayı olarak değer olarak kullanarak harita yapıyorum. Hasarım bildirimim aşağıdaki gibi görünüyor.Anahtardan Tamsayı Değeri hashmap'ın nesnesi

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; 
} 

}

i bir BakidRangeid örneğini ayarlayarak mapBankIdRangeIdToConfId HashMap gelen değeri elde çalışıyorum

i nesnenin NullPointerException inspite ile almak gibi

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

Ve BakidRangeid sınıf görünüyor Geçmekte olduğum bankid ve rangeid değerleri hashmap'da mevcut. Sanırım BakidRangeid sınıfımın eşittir ve hashcode yöntemlerini geçersiz kılmam gerekecek. Herkes onaylamak. Şimdiden teşekkürler!

+3

Evet, "eşittir" ve "hashCode" değerini uygulamanız gerektiğini onaylayabilirim. – Thilo

+0

Belirttiğiniz gibi, hashcode yöntemini geçersiz kılmayı denediniz mi? – TonyH

cevap

1

geçersiz kılma HashMap bir anahtar olarak kullanmadan önce sınıf BakidRangeid yöntemini eşit bakınız.

1

Lütfen BakidRangeid sınıfında hashCode() ve equals() yöntemini kullanın.

bu link

İlgili konular