@Override public int hashCode(){
  return field.hashCode() ^ (custom == null ? 0 : custom.hashCode());
}

@ Override public int hashCode ( ) { return field . hashCode ( ) ^ ( custom == null ? 0 : custom . hashCode ( ) ) ; }
composes a hashcode based on the field and type .
