@Contract(pure=true)
  public static <T> T @NotNull [] toObjectArray(@NotNull Collection<? extends T> collection, @NotNull Class<T> aClass) {
    T[] array = newArray(aClass, collection.size());
    return collection.toArray(array);
  }
@Contract(pure=true)
  public static <T> T @NotNull [] toObjectArray(@NotNull Collection<? extends T> collection, @NotNull Class<T> aClass)