Objects#hash(Object...)
メソッドでの使用についてどう思いますhashCode()
か?
int a = 1;
boolean b = true;
Date c = new Date();
String d = "1234";
Object e = new ch.example.blabla.Foo();
// Java 7
public int hashCode() {
return Objects.hash(a, b, c, d, e);
}
// or using Java 6
public int hashCode() {
return Arrays.hashCode(new Object[] {a, b, c, d, e});
}
もちろん、equals(Object)
メソッドを持っているなどの通常の状況下でも。hashCode()
Joshua Bloch は、ビットのシフトなどのルール/レシピを使用して優れたメソッドを作成する方法を著書に書いています。
上記の例は、プリミティブ データ型のこれらの規則に従っていません。したがって、私の質問は、Bloch のレシピに従うか、Apache Commons を使用する代わりに、オブジェクト (オートボクシング) のようなプリミティブ データ型を処理してもよいHashCodeBuilder
ですか?
Objects#hash(Object...)
は Java 7 で導入され、 のみを呼び出すArrays.hashCode(Object[])
ため、この質問は Java 6 ユーザーにも焦点を当てています。
あなたの応答/アイデア/提案をありがとう!
新しい質問が原因で、古い質問が重複して閉じられる時期が本当にわかりません。
ただし、ここでより良い答えが得られる質問があります。