code: @SuppressWarnings("unchecked")
    public static <T> T[] deepCopy(T[] array) {
  
      Assert.notNull(array, "Array is required");
  
      return deepCopy(array, element -> element != null ? ObjectUtils.clone(element) : null);
    }
docs: Deeply copies the given array into a new array of the same {@link Class type}.
  
  This function performs a deep copy by {@literal cloning} each element from the original array.
  
  @param <T> {@link Class type} of the array elements.
  @param array array to copy.
  @return a deep copy of the given array.
  @throws IllegalArgumentException if the given array is {@literal null}, or an individual element
  from the original array is not {@link Cloneable}.
  @see #deepCopy(Object[], Function)
  @see #shallowCopy(Object[])