code: @GwtIncompatible // Array.newInstance(Class, int)
    public static <T> T[] concat(T[] first, T[] second, Class<T> type) {
      T[] result = newArray(type, first.length + second.length);
      System.arraycopy(first, 0, result, 0, first.length);
      System.arraycopy(second, 0, result, first.length, second.length);
      return result;
    }
docs: Returns a new array that contains the concatenated contents of two arrays.
  
  @param first the first array of elements to concatenate
  @param second the second array of elements to concatenate
  @param type the component type of the returned array