code: @SafeVarargs
      public static <T> T[] insertAll(final T[] a, final int index, final T... b) {
          N.checkArgNotNull(a, "a");
  
          final T[] newArray = (T[]) Array.newInstance(a.getClass().getComponentType(), a.length + b.length);
  
          if (index > 0) {
              copy(a, 0, newArray, 0, index);
          }
  
          copy(b, 0, newArray, index, b.length);
  
          if (index < a.length) {
              copy(a, index, newArray, index + b.length, a.length - index);
          }
  
          return newArray;
      }
docs: <p>
  Inserts the specified elements 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>
  
  @param a
  the first array whose elements are added to the new array.
  @param index
  the position of the new elements start from
  @param b
  the second array whose elements are added to the new array.
  @return A new array containing the elements from a and b
  @throws NullPointerException if the specified <code>a</code> is <code>null</code>.