📅  最后修改于: 2020-03-28 03:16:43             🧑  作者: Mango
java.lang.reflect包中的Array类是Java Reflection的一部分。此类提供了静态方法来动态创建和访问Java数组。这是final的类,这意味着它不能被实例化或更改。类名本身只能使用此类的方法。
所述java.util.Arrays中类包含用来操作阵列的各种方法(例如排序和搜索),而此java.lang.reflect.Array中类提供静态方法来动态创建和访问Java阵列。该Array类使数组保持类型安全。
类层次结构:
java.lang.Object
↳ java.lang.reflect.Array
类声明:
public final class Array
extends Object
使用数组的语法:
Array.;
Java Array中的方法:
使用reflect.Array类创建数组与通常的方法不同。创建这样的数组的过程如下:
X[] arrayOfXType = (X[]) Array.newInstance(X.class, size);
where X is to be replaced by
the type of the array like int, double, etc.
下面是使用Array类创建大小为5的整数数组的示例:
创建大小为5的整数数组:
// Java创建大小为5的整数数组:
import java.lang.reflect.Array;
import java.util.Arrays;
public class GfG {
public static void main(String[] args)
{
// 获取数组长度size
int sizeOfArray = 5;
// 使用 reflect.Array 类创建数组
// This is done using the newInstance() method
int[] intArray = (int[])Array
.newInstance(int.class,
sizeOfArray);
// 打印数组
System.out.println(Arrays.toString(intArray));
}
}
输出:
[0,0,0,0,0]
就像创建数组一样,使用reflect.Array类在数组中添加元素也与通常方式不同。在此类数组中添加元素的过程如下:
Array.setX(X[], indexOfInsertion, elementToBeInserted);
x将会替换成如int,double的array
以下是使用Array类将元素添加到整数数组中的示例:
示例:要将元素添加到整数数组中:
// Java给array添加元素
import java.lang.reflect.Array;
import java.util.Arrays;
public class GfG {
public static void main(String[] args)
{
// array的size
int sizeOfArray = 3;
// 使用reflect.Array类创建数组
// This is done using the newInstance() method
int[] intArray = (int[])Array
.newInstance(int.class,
sizeOfArray);
// 给数组添加元素
// 使用setInt()方法
Array.setInt(intArray, 0, 10);
Array.setInt(intArray, 1, 20);
Array.setInt(intArray, 2, 30);
// 打印array
System.out.println(Arrays.toString(intArray));
}
}
输出:
[10, 20, 30]
与创建数组一样,使用reflect.Array Class检索数组中的元素也与通常方式不同。检索此类数组中的元素的过程如下:
Array.getX(X[], indexOfRetrieval);
X将被替换为数组的类型,例如int,double等。
以下是使用Array类从整数数组中检索元素的示例:
从整数数组中检索元素:
// Java展示从数组检索制定index的元素
import java.lang.reflect.Array;
import Java.util.Arrays;
public class GfG {
public static void main(String[] args)
{
// 获得array的size
int sizeOfArray = 3;
// 使用reflect.Array创建array
// 利用了newInstance()方法
int[] intArray = (int[])Array
.newInstance(int.class,
sizeOfArray);
// 给array增加元素
// 使用getInt()方法
Array.setInt(intArray, 0, 10);
Array.setInt(intArray, 1, 20);
Array.setInt(intArray, 2, 30);
// 打印array的内容
System.out.println(Arrays.toString(intArray));
// 获取array中的元素
// 使用getInt()方法
System.out.println("在index 0的元素值: "
+ Array.getInt(intArray, 0));
System.out.println("在index 1的元素值: "
+ Array.getInt(intArray, 1));
System.out.println("在index 2的元素值: "
+ Array.getInt(intArray, 2));
}
}
输出:
[10, 20, 30]
在index 0的元素值: 10
在index 1的元素值: 20
在index 2的元素值: 30