code: public static int reflectionHashCode(final Object object, final String... excludeFields) {
          return reflectionHashCode(DEFAULT_INITIAL_VALUE, DEFAULT_MULTIPLIER_VALUE, object, false, 
                  null, excludeFields);
      }
docs: <p>
  Uses reflection to build a valid hash code from the fields of {@code object}.
  </p>
  
  <p>
  This constructor uses two hard coded choices for the constants needed to build a hash code.
  </p>
  
  <p>
  It uses <code>AccessibleObject.setAccessible</code> to gain access to private fields. This means that it will
  throw a security exception if run under a security manager, if the permissions are not set up correctly. It is
  also not as efficient as testing explicitly.
  </p>
  
  <p>
  Transient members will be not be used, as they are likely derived fields, and not part of the value of the
  <code>Object</code>.
  </p>
  
  <p>
  Static fields will not be tested. Superclass fields will be included. If no fields are found to include
  in the hash code, the result of this method will be constant.
  </p>
  
  @param object
  the Object to create a <code>hashCode</code> for
  @param excludeFields
  array of field names to exclude from use in calculation of hash code
  @return int hash code
  @throws IllegalArgumentException
  if the object is <code>null</code>