Methods Summary |
---|
private static native java.lang.Object | createMultiArray(java.lang.Class componentType, int[] dimensions)
|
private static native java.lang.Object | createObjectArray(java.lang.Class componentType, int length)
|
public static java.lang.Object | get(java.lang.Object array, int index)Returns the element of the array at the specified index. This reproduces
the effect of {@code array[index]}. If the array component is a primitive
type, the result is automatically wrapped.
if (array instanceof Object[])
return ((Object[]) array)[index];
if (array instanceof boolean[])
return ((boolean[]) array)[index] ? Boolean.TRUE : Boolean.FALSE;
if (array instanceof byte[])
return new Byte(((byte[]) array)[index]);
if (array instanceof char[])
return new Character(((char[]) array)[index]);
if (array instanceof short[])
return new Short(((short[]) array)[index]);
if (array instanceof int[])
return new Integer(((int[]) array)[index]);
if (array instanceof long[])
return new Long(((long[]) array)[index]);
if (array instanceof float[])
return new Float(((float[]) array)[index]);
if (array instanceof double[])
return new Double(((double[]) array)[index]);
if (array == null)
throw new NullPointerException();
throw new IllegalArgumentException("Not an array");
|
public static boolean | getBoolean(java.lang.Object array, int index)Returns the element of the array at the specified index, converted to a
{@code boolean}, if possible. This reproduces the effect of {@code
array[index]}
if (array instanceof boolean[]) {
return ((boolean[]) array)[index];
} else if (array == null) {
throw new NullPointerException();
} else if (array.getClass().isArray()) {
throw new IllegalArgumentException("Wrong array type");
} else {
throw new IllegalArgumentException("Not an array");
}
|
public static byte | getByte(java.lang.Object array, int index)Returns the element of the array at the specified index, converted to a
{@code byte}, if possible. This reproduces the effect of {@code
array[index]}
if (array instanceof byte[]) {
return ((byte[]) array)[index];
} else {
return getBoolean(array, index) ? (byte)1 : (byte)0;
}
|
public static char | getChar(java.lang.Object array, int index)Returns the element of the array at the specified index, converted to a
{@code char}, if possible. This reproduces the effect of {@code
array[index]}
if (array instanceof char[]) {
return ((char[]) array)[index];
} else if (array == null) {
throw new NullPointerException();
} else if (array.getClass().isArray()) {
throw new IllegalArgumentException("Wrong array type");
} else {
throw new IllegalArgumentException("Not an array");
}
|
public static double | getDouble(java.lang.Object array, int index)Returns the element of the array at the specified index, converted to a
{@code double}, if possible. This reproduces the effect of {@code
array[index]}
if (array instanceof double[]) {
return ((double[]) array)[index];
} else {
return getFloat(array, index);
}
|
public static float | getFloat(java.lang.Object array, int index)Returns the element of the array at the specified index, converted to a
{@code float}, if possible. This reproduces the effect of {@code
array[index]}
if (array instanceof float[]) {
return ((float[]) array)[index];
} else {
return getLong(array, index);
}
|
public static int | getInt(java.lang.Object array, int index)Returns the element of the array at the specified index, converted to an
{@code int}, if possible. This reproduces the effect of {@code
array[index]}
if (array instanceof int[]) {
return ((int[]) array)[index];
} else {
return getShort(array, index);
}
|
public static int | getLength(java.lang.Object array)Returns the length of the array. This reproduces the effect of {@code
array.length}
if (array instanceof Object[])
return ((Object[]) array).length;
if (array instanceof boolean[])
return ((boolean[]) array).length;
if (array instanceof byte[])
return ((byte[]) array).length;
if (array instanceof char[])
return ((char[]) array).length;
if (array instanceof short[])
return ((short[]) array).length;
if (array instanceof int[])
return ((int[]) array).length;
if (array instanceof long[])
return ((long[]) array).length;
if (array instanceof float[])
return ((float[]) array).length;
if (array instanceof double[])
return ((double[]) array).length;
if (array == null)
throw new NullPointerException();
throw new IllegalArgumentException("Not an array");
|
public static long | getLong(java.lang.Object array, int index)Returns the element of the array at the specified index, converted to a
{@code long}, if possible. This reproduces the effect of {@code
array[index]}
if (array instanceof long[]) {
return ((long[]) array)[index];
} else {
return getInt(array, index);
}
|
public static short | getShort(java.lang.Object array, int index)Returns the element of the array at the specified index, converted to a
{@code short}, if possible. This reproduces the effect of {@code
array[index]}
if (array instanceof short[])
return ((short[]) array)[index];
return getByte(array, index);
|
public static java.lang.Object | newInstance(java.lang.Class componentType, int[] dimensions)Returns a new multidimensional array of the specified component type and
dimensions. This reproduces the effect of {@code new
componentType[d0][d1]...[dn]} for a dimensions array of { d0, d1, ... ,
dn }.
if (dimensions.length <= 0 || dimensions.length > 255)
throw new IllegalArgumentException("Bad number of dimensions");
if (componentType == Void.TYPE)
throw new IllegalArgumentException();
if (componentType == null)
throw new NullPointerException();
return createMultiArray(componentType, dimensions);
|
public static java.lang.Object | newInstance(java.lang.Class componentType, int size)Returns a new array of the specified component type and length. This
reproduces the effect of {@code new componentType[size]}.
if (!componentType.isPrimitive())
return createObjectArray(componentType, size);
if (componentType == Boolean.TYPE)
return new boolean[size];
if (componentType == Byte.TYPE)
return new byte[size];
if (componentType == Character.TYPE)
return new char[size];
if (componentType == Short.TYPE)
return new short[size];
if (componentType == Integer.TYPE)
return new int[size];
if (componentType == Long.TYPE)
return new long[size];
if (componentType == Float.TYPE)
return new float[size];
if (componentType == Double.TYPE)
return new double[size];
if (componentType == Void.TYPE)
throw new IllegalArgumentException();
throw new RuntimeException(); // should be impossible
|
public static void | set(java.lang.Object array, int index, java.lang.Object value)Sets the element of the array at the specified index to the value. This
reproduces the effect of {@code array[index] = value}. If the array
component is a primitive type, the value is automatically unwrapped.
if (!array.getClass().isArray()) {
throw new IllegalArgumentException("Not an array type");
}
if (array instanceof Object[]) {
if (value != null &&
!array.getClass().getComponentType().isInstance(value)) {
// incompatible object type for this array
throw new IllegalArgumentException("Wrong array type");
}
((Object[]) array)[index] = value;
} else {
if (value == null) {
throw new IllegalArgumentException("Primitive array can't take null values.");
}
if (value instanceof Boolean)
setBoolean(array, index, ((Boolean) value).booleanValue());
else if (value instanceof Byte)
setByte(array, index, ((Byte) value).byteValue());
else if (value instanceof Character)
setChar(array, index, ((Character) value).charValue());
else if (value instanceof Short)
setShort(array, index, ((Short) value).shortValue());
else if (value instanceof Integer)
setInt(array, index, ((Integer) value).intValue());
else if (value instanceof Long)
setLong(array, index, ((Long) value).longValue());
else if (value instanceof Float)
setFloat(array, index, ((Float) value).floatValue());
else if (value instanceof Double)
setDouble(array, index, ((Double) value).doubleValue());
}
|
public static void | setBoolean(java.lang.Object array, int index, boolean value)Sets the element of the array at the specified index to the {@code
boolean} value. This reproduces the effect of {@code array[index] =
value}.
if (array instanceof boolean[]) {
((boolean[]) array)[index] = value;
} else {
setByte(array, index, value ? (byte)1 : (byte)0);
}
|
public static void | setByte(java.lang.Object array, int index, byte value)Sets the element of the array at the specified index to the {@code byte}
value. This reproduces the effect of {@code array[index] = value}.
if (array instanceof byte[]) {
((byte[]) array)[index] = value;
} else {
setShort(array, index, value);
}
|
public static void | setChar(java.lang.Object array, int index, char value)Set the element of the array at the specified index to the {@code char}
value. This reproduces the effect of {@code array[index] = value}.
if (array instanceof char[]) {
((char[]) array)[index] = value;
} else if (array == null) {
throw new NullPointerException();
} else if (!array.getClass().isArray()) {
throw new IllegalArgumentException("Not an array");
} else {
throw new IllegalArgumentException("Wrong array type");
}
|
public static void | setDouble(java.lang.Object array, int index, double value)Set the element of the array at the specified index to the {@code double}
value. This reproduces the effect of {@code array[index] = value}.
if (array instanceof double[]) {
((double[]) array)[index] = value;
} else if (array == null) {
throw new NullPointerException();
} else if (!array.getClass().isArray()) {
throw new IllegalArgumentException("Not an array");
} else {
throw new IllegalArgumentException("Wrong array type");
}
|
public static void | setFloat(java.lang.Object array, int index, float value)Set the element of the array at the specified index to the {@code float}
value. This reproduces the effect of {@code array[index] = value}.
if (array instanceof float[]) {
((float[]) array)[index] = value;
} else {
setDouble(array, index, value);
}
|
public static void | setInt(java.lang.Object array, int index, int value)Set the element of the array at the specified index to the {@code int}
value. This reproduces the effect of {@code array[index] = value}.
if (array instanceof int[]) {
((int[]) array)[index] = value;
} else {
setLong(array, index, value);
}
|
public static void | setLong(java.lang.Object array, int index, long value)Set the element of the array at the specified index to the {@code long}
value. This reproduces the effect of {@code array[index] = value}.
if (array instanceof long[]) {
((long[]) array)[index] = value;
} else {
setFloat(array, index, value);
}
|
public static void | setShort(java.lang.Object array, int index, short value)Set the element of the array at the specified index to the {@code short}
value. This reproduces the effect of {@code array[index] = value}.
if (array instanceof short[]) {
((short[]) array)[index] = value;
} else {
setInt(array, index, value);
}
|