📄 array.java
字号:
/* * @(#)Array.java 1.14 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.lang.reflect;/** * The <code>Array</code> class provides static methods to dynamically create and * access Java arrays. * * <p><code>Array</code> permits widening conversions to occur during a get or set * operation, but throws an <code>IllegalArgumentException</code> if a narrowing * conversion would occur. * * @author Nakul Saraiya */public finalclass Array { /** * 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: * <blockquote> * <pre> * int[] x = {length}; * Array.newInstance(componentType, x); * </pre> * </blockquote> * * @param componentType the <code>Class</code> object representing the * component type of the new array * @param length the length of the new array * @return the new array * @exception NullPointerException if the specified * <code>componentType</code> parameter is null * @exception IllegalArgumentException if componentType is Void.TYPE * @exception NegativeArraySizeException if the specified <code>length</code> * 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 <code>componentType</code> * represents a non-array class or interface, the new array * has <code>dimensions.length</code> dimensions and * <code>componentType </code> as its component type. If * <code>componentType</code> represents an array class, the * number of dimensions of the new array is equal to the sum * of <code>dimensions.length</code> and the number of * dimensions of <code>componentType</code>. In this case, the * component type of the new array is the component type of * <code>componentType</code>. * * <p>The number of dimensions of the new array must not * exceed the number of array dimensions supported by the * implementation (typically 255). * * @param componentType the <code>Class</code> object representing the component * type of the new array * @param dimensions an array of <code>int</code> types representing the dimensions of * the new array * @return the new array * @exception NullPointerException if the specified * <code>componentType</code> argument is null * @exception IllegalArgumentException if the specified <code>dimensions</code> * argument is a zero-dimensional array, or if the number of * requested dimensions exceeds the limit on the number of array dimensions * supported by the implementation (typically 255), or if componentType * is Void.TYPE. * @exception NegativeArraySizeException if any of the components in * the specified <code>dimensions</code> 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 <code>int</code>. * * @param array the array * @return the length of the array * @exception IllegalArgumentException if the object argument is not * an array */ 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. * * @param array the array * @param index the index * @return the (possibly wrapped) value of the indexed component in * the specified array * @exception NullPointerException If the specified object is null * @exception IllegalArgumentException If the specified object is not * an array * @exception ArrayIndexOutOfBoundsException If the specified <code>index</code> * 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 <code>boolean</code>. * * @param array the array * @param index the index * @return the value of the indexed component in the specified array * @exception NullPointerException If the specified object is null * @exception 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 * @exception ArrayIndexOutOfBoundsException If the specified <code>index</code> * 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 <code>byte</code>. * * @param array the array * @param index the index * @return the value of the indexed component in the specified array * @exception NullPointerException If the specified object is null * @exception 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 * @exception ArrayIndexOutOfBoundsException If the specified <code>index</code> * 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 <code>char</code>. * * @param array the array * @param index the index * @return the value of the indexed component in the specified array * @exception NullPointerException If the specified object is null * @exception 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 * @exception ArrayIndexOutOfBoundsException If the specified <code>index</code> * 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 <code>short</code>. * * @param array the array * @param index the index * @return the value of the indexed component in the specified array * @exception NullPointerException If the specified object is null * @exception 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 * @exception ArrayIndexOutOfBoundsException If the specified <code>index</code> * 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 <code>int</code>. * * @param array the array * @param index the index * @return the value of the indexed component in the specified array * @exception NullPointerException If the specified object is null * @exception 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 * @exception ArrayIndexOutOfBoundsException If the specified <code>index</code> * 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 <code>long</code>. * * @param array the array * @param index the index * @return the value of the indexed component in the specified array * @exception NullPointerException If the specified object is null * @exception 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 * @exception ArrayIndexOutOfBoundsException If the specified <code>index</code> * 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -