/*
* Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package java.lang.reflect;
import jdk.internal.vm.annotation.IntrinsicCandidate;
The Array
class provides static methods to dynamically create and access Java arrays. Array
permits widening conversions to occur during a get or set operation, but throws an IllegalArgumentException
if a narrowing conversion would occur.
Author: Nakul Saraiya Since: 1.1
/**
* The {@code Array} class provides static methods to dynamically create and
* access Java arrays.
*
* <p>{@code Array} permits widening conversions to occur during a get or set
* operation, but throws an {@code IllegalArgumentException} if a narrowing
* conversion would occur.
*
* @author Nakul Saraiya
* @since 1.1
*/
public final
class Array {
Constructor. Class Array is not instantiable.
/**
* Constructor. Class Array is not instantiable.
*/
private Array() {}
Creates a new array with the specified component type and
length.
Invoking this method is equivalent to creating an array
as follows:
int[] x = {length};
Array.newInstance(componentType, x);
The number of dimensions of the new array must not
exceed 255.
Params: - componentType – the
Class
object representing the component type of the new array - length – the length of the new array
Throws: - NullPointerException – if the specified
componentType
parameter is null - IllegalArgumentException – if componentType is
Void.TYPE
or if the number of dimensions of the requested array instance exceed 255. - NegativeArraySizeException – if the specified
length
is negative
Returns: the new array
/**
* Creates a new array with the specified component type and
* length.
* Invoking this method is equivalent to creating an array
* as follows:
* <blockquote>
* <pre>
* int[] x = {length};
* Array.newInstance(componentType, x);
* </pre>
* </blockquote>
*
* <p>The number of dimensions of the new array must not
* exceed 255.
*
* @param componentType the {@code Class} object representing the
* component type of the new array
* @param length the length of the new array
* @return the new array
* @throws NullPointerException if the specified
* {@code componentType} parameter is null
* @throws IllegalArgumentException if componentType is {@link
* Void#TYPE} or if the number of dimensions of the requested array
* instance exceed 255.
* @throws NegativeArraySizeException if the specified {@code length}
* is negative
*/
public static Object newInstance(Class<?> componentType, int length)
throws NegativeArraySizeException {
return newArray(componentType, length);
}
Creates a new array with the specified component type and dimensions. If componentType
represents a non-array class or interface, the new array has dimensions.length
dimensions and componentType
as its component type. If componentType
represents an array class, the number of dimensions of the new array is equal to the sum of dimensions.length
and the number of dimensions of componentType
. In this case, the component type of the new array is the component type of componentType
. The number of dimensions of the new array must not
exceed 255.
Params: - componentType – the
Class
object representing the component type of the new array - dimensions – an array of
int
representing the dimensions of the new array
Throws: - NullPointerException – if the specified
componentType
argument is null - IllegalArgumentException – if the specified
dimensions
argument is a zero-dimensional array, if componentType is Void.TYPE
, or if the number of dimensions of the requested array instance exceed 255. - NegativeArraySizeException – if any of the components in the specified
dimensions
argument is negative.
Returns: the new array
/**
* Creates a new array
* with the specified component type and dimensions.
* If {@code componentType}
* represents a non-array class or interface, the new array
* has {@code dimensions.length} dimensions and
* {@code componentType} as its component type. If
* {@code componentType} represents an array class, the
* number of dimensions of the new array is equal to the sum
* of {@code dimensions.length} and the number of
* dimensions of {@code componentType}. In this case, the
* component type of the new array is the component type of
* {@code componentType}.
*
* <p>The number of dimensions of the new array must not
* exceed 255.
*
* @param componentType the {@code Class} object representing the component
* type of the new array
* @param dimensions an array of {@code int} representing the dimensions of
* the new array
* @return the new array
* @throws NullPointerException if the specified
* {@code componentType} argument is null
* @throws IllegalArgumentException if the specified {@code dimensions}
* argument is a zero-dimensional array, if componentType is {@link
* Void#TYPE}, or if the number of dimensions of the requested array
* instance exceed 255.
* @throws NegativeArraySizeException if any of the components in
* the specified {@code dimensions} argument is negative.
*/
public static Object newInstance(Class<?> componentType, int... dimensions)
throws IllegalArgumentException, NegativeArraySizeException {
return multiNewArray(componentType, dimensions);
}
Returns the length of the specified array object, as an int
. Params: - array – the array
Throws: - IllegalArgumentException – if the object argument is not
an array
Returns: the length of the array
/**
* Returns the length of the specified array object, as an {@code int}.
*
* @param array the array
* @return the length of the array
* @throws IllegalArgumentException if the object argument is not
* an array
*/
@IntrinsicCandidate
public static native int getLength(Object array)
throws IllegalArgumentException;
Returns the value of the indexed component in the specified
array object. The value is automatically wrapped in an object
if it has a primitive type.
Params: - array – the array
- index – the index
Throws: - NullPointerException – If the specified object is null
- IllegalArgumentException – If the specified object is not
an array
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
Returns: the (possibly wrapped) value of the indexed component in
the specified array
/**
* Returns the value of the indexed component in the specified
* array object. The value is automatically wrapped in an object
* if it has a primitive type.
*
* @param array the array
* @param index the index
* @return the (possibly wrapped) value of the indexed component in
* the specified array
* @throws NullPointerException If the specified object is null
* @throws IllegalArgumentException If the specified object is not
* an array
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to the
* length of the specified array
*/
public static native Object get(Object array, int index)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Returns the value of the indexed component in the specified array object, as a boolean
. Params: - array – the array
- index – the index
Throws: - NullPointerException – If the specified object is null
- IllegalArgumentException – If the specified object is not
an array, or if the indexed element cannot be converted to the
return type by an identity or widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also: Returns: the value of the indexed component in the specified array
/**
* Returns the value of the indexed component in the specified
* array object, as a {@code boolean}.
*
* @param array the array
* @param index the index
* @return the value of the indexed component in the specified array
* @throws NullPointerException If the specified object is null
* @throws IllegalArgumentException If the specified object is not
* an array, or if the indexed element cannot be converted to the
* return type by an identity or widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to the
* length of the specified array
* @see Array#get
*/
public static native boolean getBoolean(Object array, int index)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Returns the value of the indexed component in the specified array object, as a byte
. Params: - array – the array
- index – the index
Throws: - NullPointerException – If the specified object is null
- IllegalArgumentException – If the specified object is not
an array, or if the indexed element cannot be converted to the
return type by an identity or widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also: Returns: the value of the indexed component in the specified array
/**
* Returns the value of the indexed component in the specified
* array object, as a {@code byte}.
*
* @param array the array
* @param index the index
* @return the value of the indexed component in the specified array
* @throws NullPointerException If the specified object is null
* @throws IllegalArgumentException If the specified object is not
* an array, or if the indexed element cannot be converted to the
* return type by an identity or widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to the
* length of the specified array
* @see Array#get
*/
public static native byte getByte(Object array, int index)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Returns the value of the indexed component in the specified array object, as a char
. Params: - array – the array
- index – the index
Throws: - NullPointerException – If the specified object is null
- IllegalArgumentException – If the specified object is not
an array, or if the indexed element cannot be converted to the
return type by an identity or widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also: Returns: the value of the indexed component in the specified array
/**
* Returns the value of the indexed component in the specified
* array object, as a {@code char}.
*
* @param array the array
* @param index the index
* @return the value of the indexed component in the specified array
* @throws NullPointerException If the specified object is null
* @throws IllegalArgumentException If the specified object is not
* an array, or if the indexed element cannot be converted to the
* return type by an identity or widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to the
* length of the specified array
* @see Array#get
*/
public static native char getChar(Object array, int index)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Returns the value of the indexed component in the specified array object, as a short
. Params: - array – the array
- index – the index
Throws: - NullPointerException – If the specified object is null
- IllegalArgumentException – If the specified object is not
an array, or if the indexed element cannot be converted to the
return type by an identity or widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also: Returns: the value of the indexed component in the specified array
/**
* Returns the value of the indexed component in the specified
* array object, as a {@code short}.
*
* @param array the array
* @param index the index
* @return the value of the indexed component in the specified array
* @throws NullPointerException If the specified object is null
* @throws IllegalArgumentException If the specified object is not
* an array, or if the indexed element cannot be converted to the
* return type by an identity or widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to the
* length of the specified array
* @see Array#get
*/
public static native short getShort(Object array, int index)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Returns the value of the indexed component in the specified array object, as an int
. Params: - array – the array
- index – the index
Throws: - NullPointerException – If the specified object is null
- IllegalArgumentException – If the specified object is not
an array, or if the indexed element cannot be converted to the
return type by an identity or widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also: Returns: the value of the indexed component in the specified array
/**
* Returns the value of the indexed component in the specified
* array object, as an {@code int}.
*
* @param array the array
* @param index the index
* @return the value of the indexed component in the specified array
* @throws NullPointerException If the specified object is null
* @throws IllegalArgumentException If the specified object is not
* an array, or if the indexed element cannot be converted to the
* return type by an identity or widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to the
* length of the specified array
* @see Array#get
*/
public static native int getInt(Object array, int index)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Returns the value of the indexed component in the specified array object, as a long
. Params: - array – the array
- index – the index
Throws: - NullPointerException – If the specified object is null
- IllegalArgumentException – If the specified object is not
an array, or if the indexed element cannot be converted to the
return type by an identity or widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also: Returns: the value of the indexed component in the specified array
/**
* Returns the value of the indexed component in the specified
* array object, as a {@code long}.
*
* @param array the array
* @param index the index
* @return the value of the indexed component in the specified array
* @throws NullPointerException If the specified object is null
* @throws IllegalArgumentException If the specified object is not
* an array, or if the indexed element cannot be converted to the
* return type by an identity or widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to the
* length of the specified array
* @see Array#get
*/
public static native long getLong(Object array, int index)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Returns the value of the indexed component in the specified array object, as a float
. Params: - array – the array
- index – the index
Throws: - NullPointerException – If the specified object is null
- IllegalArgumentException – If the specified object is not
an array, or if the indexed element cannot be converted to the
return type by an identity or widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also: Returns: the value of the indexed component in the specified array
/**
* Returns the value of the indexed component in the specified
* array object, as a {@code float}.
*
* @param array the array
* @param index the index
* @return the value of the indexed component in the specified array
* @throws NullPointerException If the specified object is null
* @throws IllegalArgumentException If the specified object is not
* an array, or if the indexed element cannot be converted to the
* return type by an identity or widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to the
* length of the specified array
* @see Array#get
*/
public static native float getFloat(Object array, int index)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Returns the value of the indexed component in the specified array object, as a double
. Params: - array – the array
- index – the index
Throws: - NullPointerException – If the specified object is null
- IllegalArgumentException – If the specified object is not
an array, or if the indexed element cannot be converted to the
return type by an identity or widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also: Returns: the value of the indexed component in the specified array
/**
* Returns the value of the indexed component in the specified
* array object, as a {@code double}.
*
* @param array the array
* @param index the index
* @return the value of the indexed component in the specified array
* @throws NullPointerException If the specified object is null
* @throws IllegalArgumentException If the specified object is not
* an array, or if the indexed element cannot be converted to the
* return type by an identity or widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to the
* length of the specified array
* @see Array#get
*/
public static native double getDouble(Object array, int index)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Sets the value of the indexed component of the specified array
object to the specified new value. The new value is first
automatically unwrapped if the array has a primitive component
type.
Params: - array – the array
- index – the index into the array
- value – the new value of the indexed component
Throws: - NullPointerException – If the specified object argument
is null
- IllegalArgumentException – If the specified object argument
is not an array, or if the array component type is primitive and
an unwrapping conversion fails
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
/**
* Sets the value of the indexed component of the specified array
* object to the specified new value. The new value is first
* automatically unwrapped if the array has a primitive component
* type.
* @param array the array
* @param index the index into the array
* @param value the new value of the indexed component
* @throws NullPointerException If the specified object argument
* is null
* @throws IllegalArgumentException If the specified object argument
* is not an array, or if the array component type is primitive and
* an unwrapping conversion fails
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to
* the length of the specified array
*/
public static native void set(Object array, int index, Object value)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Sets the value of the indexed component of the specified array object to the specified boolean
value. Params: - array – the array
- index – the index into the array
- z – the new value of the indexed component
Throws: - NullPointerException – If the specified object argument
is null
- IllegalArgumentException – If the specified object argument
is not an array, or if the specified value cannot be converted
to the underlying array's component type by an identity or a
primitive widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also:
/**
* Sets the value of the indexed component of the specified array
* object to the specified {@code boolean} value.
* @param array the array
* @param index the index into the array
* @param z the new value of the indexed component
* @throws NullPointerException If the specified object argument
* is null
* @throws IllegalArgumentException If the specified object argument
* is not an array, or if the specified value cannot be converted
* to the underlying array's component type by an identity or a
* primitive widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to
* the length of the specified array
* @see Array#set
*/
public static native void setBoolean(Object array, int index, boolean z)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Sets the value of the indexed component of the specified array object to the specified byte
value. Params: - array – the array
- index – the index into the array
- b – the new value of the indexed component
Throws: - NullPointerException – If the specified object argument
is null
- IllegalArgumentException – If the specified object argument
is not an array, or if the specified value cannot be converted
to the underlying array's component type by an identity or a
primitive widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also:
/**
* Sets the value of the indexed component of the specified array
* object to the specified {@code byte} value.
* @param array the array
* @param index the index into the array
* @param b the new value of the indexed component
* @throws NullPointerException If the specified object argument
* is null
* @throws IllegalArgumentException If the specified object argument
* is not an array, or if the specified value cannot be converted
* to the underlying array's component type by an identity or a
* primitive widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to
* the length of the specified array
* @see Array#set
*/
public static native void setByte(Object array, int index, byte b)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Sets the value of the indexed component of the specified array object to the specified char
value. Params: - array – the array
- index – the index into the array
- c – the new value of the indexed component
Throws: - NullPointerException – If the specified object argument
is null
- IllegalArgumentException – If the specified object argument
is not an array, or if the specified value cannot be converted
to the underlying array's component type by an identity or a
primitive widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also:
/**
* Sets the value of the indexed component of the specified array
* object to the specified {@code char} value.
* @param array the array
* @param index the index into the array
* @param c the new value of the indexed component
* @throws NullPointerException If the specified object argument
* is null
* @throws IllegalArgumentException If the specified object argument
* is not an array, or if the specified value cannot be converted
* to the underlying array's component type by an identity or a
* primitive widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to
* the length of the specified array
* @see Array#set
*/
public static native void setChar(Object array, int index, char c)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Sets the value of the indexed component of the specified array object to the specified short
value. Params: - array – the array
- index – the index into the array
- s – the new value of the indexed component
Throws: - NullPointerException – If the specified object argument
is null
- IllegalArgumentException – If the specified object argument
is not an array, or if the specified value cannot be converted
to the underlying array's component type by an identity or a
primitive widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also:
/**
* Sets the value of the indexed component of the specified array
* object to the specified {@code short} value.
* @param array the array
* @param index the index into the array
* @param s the new value of the indexed component
* @throws NullPointerException If the specified object argument
* is null
* @throws IllegalArgumentException If the specified object argument
* is not an array, or if the specified value cannot be converted
* to the underlying array's component type by an identity or a
* primitive widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to
* the length of the specified array
* @see Array#set
*/
public static native void setShort(Object array, int index, short s)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Sets the value of the indexed component of the specified array object to the specified int
value. Params: - array – the array
- index – the index into the array
- i – the new value of the indexed component
Throws: - NullPointerException – If the specified object argument
is null
- IllegalArgumentException – If the specified object argument
is not an array, or if the specified value cannot be converted
to the underlying array's component type by an identity or a
primitive widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also:
/**
* Sets the value of the indexed component of the specified array
* object to the specified {@code int} value.
* @param array the array
* @param index the index into the array
* @param i the new value of the indexed component
* @throws NullPointerException If the specified object argument
* is null
* @throws IllegalArgumentException If the specified object argument
* is not an array, or if the specified value cannot be converted
* to the underlying array's component type by an identity or a
* primitive widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to
* the length of the specified array
* @see Array#set
*/
public static native void setInt(Object array, int index, int i)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Sets the value of the indexed component of the specified array object to the specified long
value. Params: - array – the array
- index – the index into the array
- l – the new value of the indexed component
Throws: - NullPointerException – If the specified object argument
is null
- IllegalArgumentException – If the specified object argument
is not an array, or if the specified value cannot be converted
to the underlying array's component type by an identity or a
primitive widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also:
/**
* Sets the value of the indexed component of the specified array
* object to the specified {@code long} value.
* @param array the array
* @param index the index into the array
* @param l the new value of the indexed component
* @throws NullPointerException If the specified object argument
* is null
* @throws IllegalArgumentException If the specified object argument
* is not an array, or if the specified value cannot be converted
* to the underlying array's component type by an identity or a
* primitive widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to
* the length of the specified array
* @see Array#set
*/
public static native void setLong(Object array, int index, long l)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Sets the value of the indexed component of the specified array object to the specified float
value. Params: - array – the array
- index – the index into the array
- f – the new value of the indexed component
Throws: - NullPointerException – If the specified object argument
is null
- IllegalArgumentException – If the specified object argument
is not an array, or if the specified value cannot be converted
to the underlying array's component type by an identity or a
primitive widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also:
/**
* Sets the value of the indexed component of the specified array
* object to the specified {@code float} value.
* @param array the array
* @param index the index into the array
* @param f the new value of the indexed component
* @throws NullPointerException If the specified object argument
* is null
* @throws IllegalArgumentException If the specified object argument
* is not an array, or if the specified value cannot be converted
* to the underlying array's component type by an identity or a
* primitive widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to
* the length of the specified array
* @see Array#set
*/
public static native void setFloat(Object array, int index, float f)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Sets the value of the indexed component of the specified array object to the specified double
value. Params: - array – the array
- index – the index into the array
- d – the new value of the indexed component
Throws: - NullPointerException – If the specified object argument
is null
- IllegalArgumentException – If the specified object argument
is not an array, or if the specified value cannot be converted
to the underlying array's component type by an identity or a
primitive widening conversion
- ArrayIndexOutOfBoundsException – If the specified
index
argument is negative, or if it is greater than or equal to the length of the specified array
See Also:
/**
* Sets the value of the indexed component of the specified array
* object to the specified {@code double} value.
* @param array the array
* @param index the index into the array
* @param d the new value of the indexed component
* @throws NullPointerException If the specified object argument
* is null
* @throws IllegalArgumentException If the specified object argument
* is not an array, or if the specified value cannot be converted
* to the underlying array's component type by an identity or a
* primitive widening conversion
* @throws ArrayIndexOutOfBoundsException If the specified {@code index}
* argument is negative, or if it is greater than or equal to
* the length of the specified array
* @see Array#set
*/
public static native void setDouble(Object array, int index, double d)
throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
/*
* Private
*/
@IntrinsicCandidate
private static native Object newArray(Class<?> componentType, int length)
throws NegativeArraySizeException;
private static native Object multiNewArray(Class<?> componentType,
int[] dimensions)
throws IllegalArgumentException, NegativeArraySizeException;
}