code: public static CompletableFuture<?> allOf(final Collection<?> futures) {
          @SuppressWarnings({"unchecked", "rawtypes"})
          final CompletableFuture[] futuresArray = futures.toArray(new CompletableFuture[0]);
          return CompletableFuture.allOf(futuresArray);
      }
docs: Variant of {@code CompletableFuture.allOf(CompletableFuture<?>...)}
  that accepts a list of {@code CompletableFuture<T>} instead of an array.
  Encapsulates the array creation and associated unsafe casting and raw
  types warnings.
  
  @param futures the CompletableFutures
  @return a new CompletableFuture that is completed when all of the
  given CompletableFutures complete