Java 中的 Reflect Array 类
java 8object oriented programmingprogramming更新于 2025/11/7 14:04:17
java.lang.reflect 包中的 Array 类提供了用于动态创建和访问 Java 数组的静态方法。Array 允许在 get 或 set 操作期间进行扩展转换,但如果发生收缩转换,则会抛出 IllegalArgumentException。
此类提供 newInstance() 方法、getter 方法和 setter 方法。newInstance() 方法接受一个表示所需组件的名为 Class 的类的对象和一个表示数组长度的整数,创建并返回一个具有给定规范的数组。
示例
import java.lang.reflect.Array;
import java.util.Arrays;
public class Reflection_ArrayExample {
public static void main(String args[]){
Integer [] intArray = (Integer[]) Array.newInstance(Integer.class, 5);
intArray[0] = 2001;
intArray[1] = 12447;
intArray[2] = 6358;
intArray[3] = 902;
intArray[4] = 6654;
System.out.println(Arrays.toString(intArray));
}
}
输出
[2001, 12447, 6358, 902, 6654]
此类的 getter 方法 getLong()、getInteger()、getLong() 等接受一个对象形式的数组和一个表示索引的整数,并返回指定索引处给定数组的元素。
此类的 setter 方法 setLong()、setInteger()、setLong() 等接受一个对象形式的数组、一个表示索引的整数和一个相应数据类型的值,并将给定值设置在指定索引处。
示例
import java.lang.reflect.Array;
import java.util.Arrays;
public class Reflection_ArrayExample {
public static void main(String args[]){
int [] intArray = (int[]) Array.newInstance(int.class, 5);
intArray[0] = 2001;
intArray[1] = 12447;
intArray[2] = 6358;
intArray[3] = 902;
intArray[4] = 6654;
Array.setInt(intArray, 1, 1111);
Array.setInt(intArray, 3, 3333);
Array.setInt(intArray, 4, 4444);
System.out.println(Arrays.toString(intArray));
System.out.println(Array.getInt(intArray, 1));
System.out.println(Array.getInt(intArray, 3));
System.out.println(Array.getInt(intArray, 4));
}
}
输出
[2001, 1111, 6358, 3333, 4444] 1111 3333 4444

