code: @SuppressWarnings({"SuspiciousSystemArraycopy"})
      public static Object mergeArrays(Object pArray1, int pOffset1, int pLength1, Object pArray2, int pOffset2, int pLength2) {
          Class class1 = pArray1.getClass();
          Class type = class1.getComponentType();
  
          // Create new array of the new length
          Object array = Array.newInstance(type, pLength1 + pLength2);
  
          System.arraycopy(pArray1, pOffset1, array, 0, pLength1);
          System.arraycopy(pArray2, pOffset2, array, pLength1, pLength2);
          return array;
      }
docs: Merges two arrays into a new array. Elements from pArray1 and pArray2 will
  be copied into a new array, that has pLength1 + pLength2 elements.
  
  @param pArray1  First array
  @param pOffset1 the offset into the first array
  @param pLength1 the number of elements to copy from the first array
  @param pArray2  Second array, must be compatible with (assignable from)
  the first array
  @param pOffset2 the offset into the second array
  @param pLength2 the number of elements to copy from the second array
  @return A new array, containing the values of pArray1 and pArray2. The
  array (wrapped as an object), will have the length of pArray1 +
  pArray2, and can be safely cast to the type of the pArray1
  parameter.
  @see java.lang.System#arraycopy(Object,int,Object,int,int)