public static long[] add(long[] array, int index, long element) {
        return (long[]) add(array, index, Long.valueOf(element), Long.TYPE);
    }
<p>Inserts the specified element at the specified position in the array.
Shifts the element currently at that position (if any) and any subsequent
elements to the right (adds one to their indices).</p>

<p>This method returns a new array with the same elements of the input
array plus the given element on the specified position. The component
type of the returned array is always the same as that of the input
array.</p>

<p>If the input array is {@code null}, a new one element array is returned
 whose component type is the same as the element.</p>

<pre>
ArrayUtils.add([1L], 0, 2L)           = [2L, 1L]
ArrayUtils.add([2L, 6L], 2, 10L)      = [2L, 6L, 10L]
ArrayUtils.add([2L, 6L], 0, -4L)      = [-4L, 2L, 6L]
ArrayUtils.add([2L, 6L, 3L], 2, 1L)   = [2L, 6L, 1L, 3L]
</pre>

@param array  the array to add the element to, may be {@code null}
@param index  the position of the new object
@param element  the object to add
@return A new array containing the existing elements and the new element
@throws IndexOutOfBoundsException if the index is out of range
(index < 0 || index > array.length).
android/android_framework/base/src/main/java/lang3/ArrayUtils.java