code: private void addStringStatistics(long valueCount, StringStatistics value)
      {
          requireNonNull(value, "value is null");
          checkArgument(valueCount > 0, "valueCount is 0");
          checkArgument(value.getMin() != null || value.getMax() != null, "min and max cannot both be null");
  
          if (nonNullValueCount == 0) {
              checkState(minimum == null && maximum == null);
              minimum = value.getMin();
              maximum = value.getMax();
          }
          else {
              if (minimum != null && (value.getMin() == null || minimum.compareTo(value.getMin()) > 0)) {
                  minimum = value.getMin();
              }
              if (maximum != null && (value.getMax() == null || maximum.compareTo(value.getMax()) < 0)) {
                  maximum = value.getMax();
              }
          }
  
          nonNullValueCount += valueCount;
          sum = addExact(sum, value.getSum());
      }
docs: This method can only be used in merging stats.
  It assumes min or max could be nulls.