📅  最后修改于: 2023-12-03 15:31:58.268000             🧑  作者: Mango
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中反射数组类的相关知识,可以方便地对数组类和数组对象进行操作。