Java tutorial
import java.lang.reflect.Array; public class Main { public static Object copyArray(final Object input) { final Class type = input.getClass(); if (!type.isArray()) { throw new IllegalArgumentException(); } final int length = Array.getLength(input); final Class componentType = type.getComponentType(); final Object result = Array.newInstance(componentType, length); for (int idx = 0; idx < length; idx++) { Array.set(result, idx, Array.get(input, idx)); } return result; } public static void main(final String[] args) { try { int[] x = new int[] { 2, 3, 8, 7, 5 }; char[] y = new char[] { 'a', 'z', 'e' }; String[] z = new String[] { "Jim", "John", "Joe" }; System.out.println(" -- z and copy of z --"); outputArrays(z, copyArray(z)); } catch (final Exception ex) { ex.printStackTrace(); } } public static void outputArrays(final Object first, final Object second) { if (!first.getClass().isArray()) { throw new IllegalArgumentException("first is not an array."); } if (!second.getClass().isArray()) { throw new IllegalArgumentException("second is not an array."); } final int lengthFirst = Array.getLength(first); final int lengthSecond = Array.getLength(second); final int length = Math.max(lengthFirst, lengthSecond); for (int idx = 0; idx < length; idx++) { System.out.print("[" + idx + "]\t"); if (idx < lengthFirst) { System.out.print(Array.get(first, idx) + "\t\t"); } else { System.out.print("\t\t"); } if (idx < lengthSecond) { System.out.print(Array.get(second, idx) + "\t"); } System.out.println(); } } }