### Question:
ArrayUtils { @SuppressWarnings("unchecked") public static <T> T[] combine(Class<T> type, T first, T second, T... rest) { T[] array = (T[]) Array.newInstance(type, rest.length + 2); array[0] = first; array[1] = second; System.arraycopy(rest, 0, array, 2, rest.length); return array; } private  ArrayUtils(); @SuppressWarnings("unchecked") static T[] combine(Class<T> type, T first, T second, T... rest); static Object[] combine(int size, Object[]... arrays); static Object[] subarray(Object[] array, int startIndexInclusive, int endIndexExclusive); static boolean isEmpty(Object[] array);  }### Answer:
@Test public void test() { Object[] array = ArrayUtils.combine(5, new Object[]{"a","b"}, new Object[]{"c","d","e"}); assertEquals(Arrays.asList("a","b","c","d","e"), Arrays.asList(array)); }