code: @SafeVarargs
      public static <T> T[] addAll(final T[] a, final T... b) {
          N.checkArgNotNull(a, "a");
  
          if (N.isNullOrEmpty(a)) {
              return N.isNullOrEmpty(b) ? b : b.clone();
          }
  
          final T[] newArray = (T[]) Array.newInstance(a.getClass().getComponentType(), a.length + b.length);
  
          copy(a, 0, newArray, 0, a.length);
          copy(b, 0, newArray, a.length, b.length);
  
          return newArray;
      }
docs: <p>
  Adds all the elements of the given arrays into a new array.
  </p>
  
  @param a
  the first array whose elements are added to the new array.
  @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>.