@Contract(pure=true)
  public static <T> T @NotNull [] append(T @NotNull [] src, @Nullable T element) {
    return append(src, element, getComponentType(src));
  }
@Contract(pure=true)
  public static <T> T @NotNull [] append(T @NotNull [] src, @Nullable T element)