public static @NotNull <T> Class<T> getComponentType(T @NotNull [] collection) {
    //noinspection unchecked
    return (Class<T>)collection.getClass().getComponentType();
  }
public static @NotNull <T> Class<T> getComponentType(T @NotNull [] collection)