Array类是java.lang.reflect包中的一个类,该类提供了动态创建和访问java数组的方法。允许在执行 get 或 set 操作期间进行扩展转换,但如果发生收缩转换,则抛出 IllegalArgumentException
。
下面以一个简单的示例来说明一下:
package com.erbin.test;
import java.lang.reflect.Array;
import java.util.Arrays;
public class TestArray {
public static void main(String[] args) {
int[] it = new int[]{12,34,4,2,3};
System.out.println("before: "+Array.getInt(it, 2));
Array.setInt(it, 2, 10);
System.out.println("after: "+Array.getInt(it, 2));
//use the Array to get the index value
double[] d = new double[]{2,33.32,23.0};
System.out.println(Array.getDouble(d, 2));
//create the new array by using the newInstance method
Object o = Array.newInstance(int.class, 4);
int[] na = (int[]) o;
na[0] = 23;
System.out.println(Arrays.toString(na));
//create the new multiple array
Object oo = Array.newInstance(int.class, 2,3);
int[][] naa = (int[][])oo;
System.out.println(Arrays.toString(naa));
}
}
注意:使用Array类获取指定组件下的数据时,类型要保持一致,否则会报异常:
Exception in thread "main" before: 4
after: 10
java.lang.IllegalArgumentException: argument type mismatch
at java.lang.reflect.Array.getInt(Native Method)
at com.erbin.test.TestArray.main(TestArray.java:15)
如果想了解更多该类的方法可以参考Java API进行查找。