code: public static Spliterator.OfLong spliterator(long[] array,
                                                   int additionalCharacteristics) {
          return new LongArraySpliterator(Objects.requireNonNull(array), additionalCharacteristics);
      }
docs: Creates a {@code Spliterator.OfLong} covering the elements of a given array,
  using a customized set of spliterator characteristics.
  
  <p>This method is provided as an implementation convenience for
  Spliterators which store portions of their elements in arrays, and need
  fine control over Spliterator characteristics.  Most other situations in
  which a Spliterator for an array is needed should use
  {@link Arrays#spliterator(long[])}.
  
  <p>The returned spliterator always reports the characteristics
  {@code SIZED} and {@code SUBSIZED}.  The caller may provide additional
  characteristics for the spliterator to report; it is common to
  additionally specify {@code IMMUTABLE} and {@code ORDERED}.
  
  @param array The array, assumed to be unmodified during use
  @param additionalCharacteristics Additional spliterator characteristics
  of this spliterator's source or elements beyond {@code SIZED} and
  {@code SUBSIZED} which are are always reported
  @return A spliterator for an array
  @throws NullPointerException if the given array is {@code null}
  @see Arrays#spliterator(long[])