java.lang.reflect.Array.newInstance()方法

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)的限制或者componentTypeVoid.TYPE
  • ArrayIndexOutOfBoundsException - 如果指定的index参数为负,或者如果大于或等于指定数组的长度。

示例

以下示例显示了java.lang.reflect.Array.newInstance(Class<?> componentType, int... dimensions)方法的用法。

package com.zaixian;

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

上一篇: java.lang.reflect.Array类 下一篇: java.lang.reflect Constructor<T>类