java.lang.reflect.Array.newInstance(Class <?> componentType,int ... dimensions)
方法创建一个具有指定组件类型和维度的新数组。如果componentType
表示非数组类或接口,则新数组的dimension.length
个维度和componentType
作为其组件类型。
声明
以下是java.lang.reflect.Array.newInstance(Class<?> componentType, int... dimensions)
方法的声明。
public static Object newInstance(Class<?> componentType, int... dimensions)
throws IllegalArgumentException, NegativeArraySizeException
参数
componentType
- 表示新数组的组件类型的Class
对象。dimensions
- 表示新数组的维数的int
数组。
返回值
- 新数组
异常
NullPointerException
- 如果指定的对象为空。IllegalArgumentException
- 如果指定的维度参数是零维数组,或者如果请求的维数超过实现支持的数组维数(通常为255
)的限制或者componentType
为Void.TYPE
。ArrayIndexOutOfBoundsException
- 如果指定的index
参数为负,或者如果大于或等于指定数组的长度。
示例
以下示例显示了java.lang.reflect.Array.newInstance(Class<?> componentType, int... dimensions)
方法的用法。
package com.yiibai;
import java.lang.reflect.Array;
public class ArrayDemo {
public static void main(String[] args) {
String[][] stringArray = (String[][]) Array.newInstance(String.class, 3,3);
Array.set(stringArray[0], 0, "Mahesh");
Array.set(stringArray[1], 1, "Ramesh");
Array.set(stringArray[2], 2, "Suresh");
System.out.println("stringArray[0][0] = " + Array.get(stringArray[0], 0));
System.out.println("stringArray[1][1] = " + Array.get(stringArray[1], 1));
System.out.println("stringArray[2][2] = " + Array.get(stringArray[2], 2));
}
}
编译并运行上面的程序,将产生以下结果 -
stringArray[0][0] = Mahesh
stringArray[1][1] = Ramesh
stringArray[2][2] = Suresh