Java中的反射数组类
Java.lang.reflect 包中的Array类是Java Reflection的一部分。此类提供静态方法来动态创建和访问Java数组。它是一个最终类,这意味着它不能被实例化或更改。类名本身只能使用此类的方法。
Java.util.Arrays 类包含各种操作数组的方法(例如排序和搜索),而这个Java.lang.reflect.Array 类提供静态方法来动态创建和访问Java数组。这个 Array 类使数组保持类型安全。
类层次结构
java.lang.Object
↳ java.lang.reflect.Array
类声明
public final class Array extends Object
使用数组的语法
Array.;
Java反射数组类中的方法
S. No. | Method | Description |
---|---|---|
1 | Object get(Object array, int index) | This method returns the value of the indexed component in the specified array object. |
2 | boolean getBoolean(Object array, int index) | This method returns the value of the indexed component in the specified array object as a boolean. |
3 | byte getByte(Object array, int index) | This method returns the value of the indexed component in the specified array object as a byte. |
4 | char getChar(Object array, int index) | This method returns the value of the indexed component in the specified array object as a char. |
5 | double getDouble(Object array, int index) | This method returns the value of the indexed component in the specified array object as a double. |
6 | float getFloat(Object array, int index) | This method returns the value of the indexed component in the specified array object as a float. |
7 | int getInt(Object array, int index) | This method returns the value of the indexed component in the specified array object as an int. |
8 | int getLength(Object array) | This method returns the length of the specified array object as an int. |
9 | long getLong(Object array, int index) | This method returns the value of the indexed component in the specified array object as a long. |
10 | short getShort(Object array, int index) | This method returns the value of the indexed component in the specified array object as a short. |
11 | Object newInstance(Class | This method creates a new array with the specified component type and length. |
12 | Object newInstance(Class | This method creates a new array with the specified component type and dimensions. |
13 | void set(Object array, int index, Object value) | This method sets the value of the indexed component of the specified array object to the specified new value. |
14 | void setBoolean(Object array, int index, boolean z) | This method sets the value of the indexed component of the specified array object to the specified boolean value. |
15 | void setByte(Object array, int index, byte b) | This method sets the value of the indexed component of the specified array object to the specified byte value. |
16 | void setChar(Object array, int index, char c) | This method sets the value of the indexed component of the specified array object to the specified char value. |
17 | void setDouble(Object array, int index, double d) | This method sets the value of the indexed component of the specified array object to the specified double value. |
18 | void setFloat(Object array, int index, float f) | This method sets the value of the indexed component of the specified array object to the specified float value. |
19 | void setInt(Object array, int index, int i) | This method sets the value of the indexed component of the specified array object to the specified int value. |
20 | void setLong(Object array, int index, long l) | This method sets the value of the indexed component of the specified array object to the specified long value. |
21 | void setShort(Object array, int index, short s) | This method sets the value of the indexed component of the specified array object to the specified short value. |
如何使用Java.lang.util.reflect.Array 类创建数组?
使用reflect.Array类创建数组与通常的方式不同。创建这样一个数组的过程如下:
- 获取要创建的数组的大小
- 要创建一个数组(比如 X 类),请使用 Array 类的 newInstance() 方法将 X 类作为数组的类型传递,并将数组的大小作为参数传递。
句法:
X[] arrayOfXType = (X[]) Array.newInstance(X.class, size);
其中 X 将替换为数组的类型,如 int、double 等。
- 此方法返回给定大小的 Object 数组,然后转换为所需的 X[] 类型。
- 因此,已创建所需的 X 类型数组。
下面是一个使用 Array 类创建大小为 5 的整数数组的示例:
示例:创建一个大小为 5 的整数数组:
Java
// Java code to create an integer array of size 5,
// using the Array class:
import java.lang.reflect.Array;
import java.util.Arrays;
public class GfG {
public static void main(String[] args)
{
// Get the size of the array
int sizeOfArray = 5;
// Create an integer array
// using reflect.Array class
// This is done using the newInstance() method
int[] intArray = (int[])Array.newInstance(
int.class, sizeOfArray);
// Printing the Array content
System.out.println(Arrays.toString(intArray));
}
}
Java
// Java code to add an element into an integer array,
// using the Array class:
import java.lang.reflect.Array;
import java.util.Arrays;
public class GfG {
public static void main(String[] args)
{
// Get the size of the array
int sizeOfArray = 3;
// Create an integer array
// using reflect.Array class
// This is done using the newInstance() method
int[] intArray = (int[])Array.newInstance(
int.class, sizeOfArray);
// Add elements into the array
// This is done using the setInt() method
Array.setInt(intArray, 0, 10);
Array.setInt(intArray, 1, 20);
Array.setInt(intArray, 2, 30);
// Printing the Array content
System.out.println(Arrays.toString(intArray));
}
}
Java
// Java code to retrieve an element from an integer array,
// using the Array class:
import java.lang.reflect.Array;
import java.util.Arrays;
public class GfG {
public static void main(String[] args)
{
// Get the size of the array
int sizeOfArray = 3;
// Create an integer array
// using reflect.Array class
// This is done using the newInstance() method
int[] intArray = (int[])Array.newInstance(
int.class, sizeOfArray);
// Add elements from the array
// This is done using the getInt() method
Array.setInt(intArray, 0, 10);
Array.setInt(intArray, 1, 20);
Array.setInt(intArray, 2, 30);
// Printing the Array content
System.out.println(Arrays.toString(intArray));
// Retrieve elements from the array
// This is done using the getInt() method
System.out.println("Element at index 0: "
+ Array.getInt(intArray, 0));
System.out.println("Element at index 1: "
+ Array.getInt(intArray, 1));
System.out.println("Element at index 2: "
+ Array.getInt(intArray, 2));
}
}
输出
[0, 0, 0, 0, 0]
如何使用Java.lang.util.reflect.Array 类在数组中添加元素?
与创建数组一样,使用 reflect.Array 类在数组中添加元素也不同于通常的方式。在这样的数组中添加元素的过程如下:
- 获取要添加的元素的值。
- 获取要添加元素的索引。
- 要在数组中添加元素(比如 X 类),请使用 Array 类的 setX() 方法,其中 X 将替换为数组的类型,例如 setInt()、setDouble() 等。此方法在下面的语法中,将 X[] 作为第一个参数,将添加元素的索引作为第二个参数,将元素作为第三个参数。
句法:
Array.setX(X[], indexOfInsertion, elementToBeInserted);
其中 X 将替换为数组的类型,如 int、double 等。
- 此方法在此数组中的指定索引处插入元素。
- 因此,所需的元素已被插入到数组中。
下面是一个使用 Array 类将元素添加到整数数组中的示例:
示例:将元素添加到整数数组中:
Java
// Java code to add an element into an integer array,
// using the Array class:
import java.lang.reflect.Array;
import java.util.Arrays;
public class GfG {
public static void main(String[] args)
{
// Get the size of the array
int sizeOfArray = 3;
// Create an integer array
// using reflect.Array class
// This is done using the newInstance() method
int[] intArray = (int[])Array.newInstance(
int.class, sizeOfArray);
// Add elements into the array
// This is done using the setInt() method
Array.setInt(intArray, 0, 10);
Array.setInt(intArray, 1, 20);
Array.setInt(intArray, 2, 30);
// Printing the Array content
System.out.println(Arrays.toString(intArray));
}
}
输出
[10, 20, 30]
如何使用Java.lang.util.reflect.Array 类检索数组中的元素?
与创建数组一样,使用 reflect.Array 类检索数组中的元素也不同于通常的方式。在这样的数组中检索元素的过程如下:
- 获取要检索元素的索引。
- 要检索数组中的元素(例如 X 类),请使用 Array 类的 getX() 方法,其中 X 将替换为数组的类型,例如 getInt()、getDouble() 等。此方法在下面的语法中,将 X[] 作为第一个参数,将检索元素的索引作为第二个参数。
句法:
Array.getX(X[], indexOfRetrieval);
其中 X 将替换为数组的类型,如 int、double 等。
- 此方法从该数组中检索指定索引处的元素。
- 因此,已从数组中检索到所需的元素。
下面是一个使用 Array 类从整数数组中检索元素的示例:
示例:从整数数组中检索元素:
Java
// Java code to retrieve an element from an integer array,
// using the Array class:
import java.lang.reflect.Array;
import java.util.Arrays;
public class GfG {
public static void main(String[] args)
{
// Get the size of the array
int sizeOfArray = 3;
// Create an integer array
// using reflect.Array class
// This is done using the newInstance() method
int[] intArray = (int[])Array.newInstance(
int.class, sizeOfArray);
// Add elements from the array
// This is done using the getInt() method
Array.setInt(intArray, 0, 10);
Array.setInt(intArray, 1, 20);
Array.setInt(intArray, 2, 30);
// Printing the Array content
System.out.println(Arrays.toString(intArray));
// Retrieve elements from the array
// This is done using the getInt() method
System.out.println("Element at index 0: "
+ Array.getInt(intArray, 0));
System.out.println("Element at index 1: "
+ Array.getInt(intArray, 1));
System.out.println("Element at index 2: "
+ Array.getInt(intArray, 2));
}
}
输出
[10, 20, 30]
Element at index 0: 10
Element at index 1: 20
Element at index 2: 30