Class HashCodeBuilder
Object.hashCode()
methods. The code is based on
HashCodeBuilder from commons-lang 2.1.- Since:
- 3.0
-
Constructor Summary
ConstructorDescriptionUses two hard coded choices for the constants needed to build ahashCode
.HashCodeBuilder
(int initialNonZeroOddNumber, int multiplierNonZeroOddNumber) Two randomly chosen, non-zero, odd numbers must be passed in. -
Method Summary
Modifier and TypeMethodDescriptionappend
(boolean value) Append ahashCode
for aboolean
.append
(boolean[] array) Append ahashCode
for aboolean
array.append
(byte value) Append ahashCode
for abyte
.append
(byte[] array) Append ahashCode
for abyte
array.append
(char value) Append ahashCode
for achar
.append
(char[] array) Append ahashCode
for achar
array.append
(double value) Append ahashCode
for adouble
.append
(double[] array) Append ahashCode
for adouble
array.append
(float value) Append ahashCode
for afloat
.append
(float[] array) Append ahashCode
for afloat
array.append
(int value) Append ahashCode
for anint
.append
(int[] array) Append ahashCode
for anint
array.append
(long value) Append ahashCode
for along
.append
(long[] array) Append ahashCode
for along
array.append
(short value) Append ahashCode
for ashort
.append
(short[] array) Append ahashCode
for ashort
array.Append ahashCode
for anObject
.Append ahashCode
for anObject
array.appendSuper
(int superHashCode) Adds the result of super.hashCode() to this builder.int
Return the computedhashCode
.
-
Constructor Details
-
HashCodeBuilder
public HashCodeBuilder()Uses two hard coded choices for the constants needed to build a
hashCode
. -
HashCodeBuilder
public HashCodeBuilder(int initialNonZeroOddNumber, int multiplierNonZeroOddNumber) Two randomly chosen, non-zero, odd numbers must be passed in. Ideally these should be different for each class, however this is not vital.
Prime numbers are preferred, especially for the multiplier.
- Parameters:
initialNonZeroOddNumber
- a non-zero, odd number used as the initial valuemultiplierNonZeroOddNumber
- a non-zero, odd number used as the multiplier- Throws:
IllegalArgumentException
- if the number is zero or even
-
-
Method Details
-
appendSuper
Adds the result of super.hashCode() to this builder.
- Parameters:
superHashCode
- the result of callingsuper.hashCode()
- Returns:
- this HashCodeBuilder, used to chain calls.
- Since:
- 2.0
-
append
Append a
hashCode
for anObject
.- Parameters:
object
- the Object to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for along
.- Parameters:
value
- the long to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for anint
.- Parameters:
value
- the int to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for ashort
.- Parameters:
value
- the short to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for achar
.- Parameters:
value
- the char to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for abyte
.- Parameters:
value
- the byte to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for adouble
.- Parameters:
value
- the double to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for afloat
.- Parameters:
value
- the float to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for aboolean
.This adds
iConstant * 1
to thehashCode
and not a1231
or1237
as done in java.lang.Boolean. This is in accordance with the Effective Java design.- Parameters:
value
- the boolean to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for anObject
array.- Parameters:
array
- the array to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for along
array.- Parameters:
array
- the array to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for anint
array.- Parameters:
array
- the array to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for ashort
array.- Parameters:
array
- the array to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for achar
array.- Parameters:
array
- the array to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for abyte
array.- Parameters:
array
- the array to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for adouble
array.- Parameters:
array
- the array to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for afloat
array.- Parameters:
array
- the array to add to thehashCode
- Returns:
- this
-
append
Append a
hashCode
for aboolean
array.- Parameters:
array
- the array to add to thehashCode
- Returns:
- this
-
toHashCode
public int toHashCode()Return the computed
hashCode
.- Returns:
hashCode
based on the fields appended
-