Array是一個類的簡寫,全限定類名是java.lang.reflect.Array.java
Array能夠表明全部的數組,能夠經過Array動態建立與修改裏面的元素.數組
使用靜態方法newInstance()構造Object對象.方法以下:code
public static Object newInstance(Class<?> element, int ... length);
第一個參數是表明元素的類,剩下的參數表示維數,一個參數表示一維數組,兩個參數表示二維數組(數組的數組),參數的值表明維數的長度.對象
Object intArray = Array.newInstance(int.class,3); //int [3] Object stringArray = Array.newInstance(String.class,2,3); //String [2][3]
賦值使用靜態方法set便可,參數爲Array返回的Object對象,下標與對應的值.blog
public static void set(Object array,int index,Object value); public static void setBoolean(Object array,int index,boolean b); public static void setXxxx(Object array,int index,xxx);
其中最後一個表示對應的基本類型,第二個爲boolean類型的示例.圖片
Array.set(intArray,2,3); Array.set(stringArray,1,new String[]{"123","456"});
使用靜態方法get,參數爲Array返回的Object對象與下標.element
public static Object get(Object array,int index); public static boolean getBoolean(Object array,int index); public static xxx getXxx(Object array,int index);
最後一個表示對應的基本類型,第二個爲boolean類型的示例get
System.out.println(Array.get(intArray,2)); System.out.println(Array.get(Array.get(stringArray,1),1));
能夠經過強制類型轉換使Array返回的Object對象轉換爲對應的數組.string
var castIntArray = (int [])intArray; var castStringArray = (String [][])stringArray;
這樣能夠看成一個普通數組使用.ast
import java.lang.reflect.*; public class test { public static void main(String[] args) { var intArray = Array.newInstance(int.class, 3); var stringArray = Array.newInstance(String.class, 2,3); Array.set(intArray, 2, 3); Array.set(stringArray, 1, new String[] { "123", "456" }); System.out.println(Array.get(intArray, 2)); System.out.println(Array.get(Array.get(stringArray,1),1)); System.out.println("-------cast-------"); System.out.println(((int[]) intArray)[2]); System.out.println(((String [][])stringArray)[1][1]); } }
如下是做者的公衆號,歡迎關注.