2016-03-21 6 views
1

私のクラスの1つでは、Testという静的なブロックがあります。私はBakidRangeid型のオブジェクトをキーとしてIntegerを値として使用してマップを構築しています。私のhashmap宣言は以下のようになります。ハッシュマップのキーオブジェクトから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ハッシュマップから値を取得しようとしていたとき、私は、オブジェクトのにNullPointerException inspiteを得るようになります。通過しているbankidとrangeidの値がハッシュマップにあります。私は私のBakidRangeidクラスのequalsメソッドとhashcodeメソッドをオーバーライドする必要があると思います。誰でも親切に確認してください。前もって感謝します!

+3

はい、私は、あなたが 'equals'と' hashCode'を実装する必要があることを確認できます。 – Thilo

+0

あなたが述べたように、hashcodeメソッドをオーバーライドしようとしましたか? – TonyH

答えて

1

オーバーライドはハッシュマップ内のキーとして使用する前に、クラスBakidRangeidのequalsメソッドを参照してください。

1

BakidRangeidクラスでhashCode()およびequals()メソッドを使用してください。

このlink

関連する問題