📜  Java中的反射数组类(1)

📅  最后修改于: 2023-12-03 15:31:58.268000             🧑  作者: Mango

Java中的反射数组类

Java中数组也是一个对象,数组类就是这些数组对象所属的类。Java中的反射机制就可以用来获取和操作数组类和数组对象。

获取数组类

获取数组类可以使用Java中的Class.forName()方法或者数组类型.class的方式。

Class<?> intArrayClass = Class.forName("[I"); //表示int类型数组的Class对象
Class<?> stringArrayClass = String[].class; //表示String类型数组的Class对象

如果使用Class.forName()方法获取,则需要把数组类型的名称作为参数传递,名称的规则是[Ljava.lang.Object;,中括号表示数组,L表示对象类型,Object表示元素类型。

获取数组类信息

获取数组类的信息可以使用以下方法:

Class<?> componentType = intArrayClass.getComponentType(); //获取int数组的元素类型,即int.class
int dimensions = intArrayClass.getComponentType().getComponentType(); //获取int数组的维度,即1
创建数组对象

使用数组类的newInstance()方法可以创建数组对象:

int[] intArray = (int[]) intArrayClass.newInstance();
String[] stringArray = (String[]) stringArrayClass.newInstance();
操作数组对象

可以使用Java中的反射机制操作数组对象:

Object array = Array.newInstance(int.class, 5); //创建长度为5的int类型数组,也可以使用int[].class创建
Array.set(array, 0, 1); //将第0个元素设为1
int value = (int) Array.get(array, 0); //获取第0个元素的内容

以上介绍了Java中反射数组类的相关知识,可以方便地对数组类和数组对象进行操作。