package java.lang.reflect; public final class Array { private Array() { } public static native Object get(Object array, int index); public static native void set(Object array, int index, Object value); public static native int getLength(Object array); private static native Object makeObjectArray(Class elementType, int length); public static Object newInstance(Class elementType, int length) { if (length < 0) { throw new NegativeArraySizeException(); } if (elementType.equals(boolean.class)) { return new boolean[length]; } else if (elementType.equals(byte.class)) { return new byte[length]; } else if (elementType.equals(char.class)) { return new char[length]; } else if (elementType.equals(short.class)) { return new short[length]; } else if (elementType.equals(int.class)) { return new int[length]; } else if (elementType.equals(long.class)) { return new long[length]; } else if (elementType.equals(float.class)) { return new float[length]; } else if (elementType.equals(double.class)) { return new double[length]; } else { return makeObjectArray(elementType, length); } } }