org.nakedobjects.metamodel.commons.lang
Class HashCodeUtils

java.lang.Object
  extended by org.nakedobjects.metamodel.commons.lang.HashCodeUtils

public final class HashCodeUtils
extends java.lang.Object

Collected methods which allow easy implementation of hashCode, based on Josh Bloch's Effective Java.

Example use case:

 public int hashCode() {
     int result = HashCodeUtil.SEED;
     //collect the contributions of various fields
     result = HashCodeUtil.hash(result, fPrimitive);
     result = HashCodeUtil.hash(result, fObject);
     result = HashCodeUtil.hash(result, fArray);
     return result;
 }
 

See Also:
http://www.javapractices.com/Topic28.cjp

Field Summary
static int SEED
          An initial value for a hashCode, to which is added contributions from fields.
 
Method Summary
static int hash(int aSeed, boolean aBoolean)
          booleans.
static int hash(int aSeed, char aChar)
          chars.
static int hash(int aSeed, double aDouble)
          doubles.
static int hash(int aSeed, float aFloat)
          floats.
static int hash(int aSeed, int aInt)
          ints.
static int hash(int aSeed, long aLong)
          longs.
static int hash(int aSeed, java.lang.Object aObject)
          aObject is a possibly-null object field, and possibly an array.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SEED

public static final int SEED
An initial value for a hashCode, to which is added contributions from fields. Using a non-zero value decreases collisons of hashCode values.

See Also:
Constant Field Values
Method Detail

hash

public static int hash(int aSeed,
                       boolean aBoolean)
booleans.


hash

public static int hash(int aSeed,
                       char aChar)
chars.


hash

public static int hash(int aSeed,
                       int aInt)
ints.

Note that byte and short are handled by this method, through implicit conversion.


hash

public static int hash(int aSeed,
                       long aLong)
longs.


hash

public static int hash(int aSeed,
                       float aFloat)
floats.


hash

public static int hash(int aSeed,
                       double aDouble)
doubles.


hash

public static int hash(int aSeed,
                       java.lang.Object aObject)
aObject is a possibly-null object field, and possibly an array. If aObject is an array, then each element may be a primitive or a possibly-null object.



Copyright © 2001-2009 Naked Objects Group Ltd.. All Rights Reserved.