static boolean equalsFor(Object[] aThisSignificantFields, Object[] aThatSignificantFields){
    //(varargs can be used for final arg only)
    if (aThisSignificantFields.length != aThatSignificantFields.length) {
      throw new IllegalArgumentException(
        "Array lengths do not match. 'This' length is " + aThisSignificantFields.length + 
        ", while 'That' length is " + aThatSignificantFields.length + "."
      );
    }
    
    boolean result = true;
    for(int idx=0; idx < aThisSignificantFields.length; ++idx){
      if ( ! areEqual(aThisSignificantFields[idx], aThatSignificantFields[idx]) ){
        result = false;
        break;
      }
    }
    return result;
  }