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

2019-10-16 22:49:31

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.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