code: public static <T, R> Collector<T, ?, R> serializableCollector(SerializableSupplier<Collector<T, ?, R>> supplier) {
        return new CollectorSupplier<>(supplier);
     }
docs: Creates a collector that is serializable and will upon usage create a collector using the serializable supplier
  provided by the user.
  @param supplier The supplier to crate the collector that is specifically serializable
  @param <T> The input type of the collector
  @param <R> The resulting type of the collector
  @return the collector which is serializable
  @see SerializableSupplier