Clase de array de reflexión en Java

La clase Array en el paquete java.lang.reflect es parte de Java Reflection . Esta clase proporciona métodos estáticos para crear y acceder dinámicamente a arreglos Java. Es una clase final, lo que significa que no se puede instanciar ni cambiar. Solo los métodos de esta clase pueden ser utilizados por el propio nombre de la clase.

La clase java.util.Arrays contiene varios métodos para manipular arrays (como ordenar y buscar), mientras que esta clase java.lang.reflect.Array proporciona métodos estáticos para crear y acceder dinámicamente a arrays Java. Esta clase Array mantiene la array segura para tipos.

Jerarquía de clases 

java.lang.Object
 ↳ java.lang.reflect.Array

Declaración de clase 

public final class Array extends Object

Sintaxis para usar Array

Array.<function name>;

Métodos en la clase Reflection Array en Java

S. No. Método Descripción
1 Obtener objeto (array de objetos, índice int) Este método devuelve el valor del componente indexado en el objeto de array especificado.
2 booleano getBoolean (array de objetos, índice int) Este método devuelve el valor del componente indexado en el objeto de array especificado como valor booleano.
3 byte getByte (array de objetos, índice int) Este método devuelve el valor del componente indexado en el objeto de array especificado como un byte.
4 char getChar (array de objetos, índice int) Este método devuelve el valor del componente indexado en el objeto de array especificado como un carácter.
5 double getDouble (array de objetos, índice int) Este método devuelve el valor del componente indexado en el objeto de array especificado como doble.
6 float getFloat (array de objetos, índice int) Este método devuelve el valor del componente indexado en el objeto de array especificado como un valor flotante.
7 int getInt (array de objetos, índice int) Este método devuelve el valor del componente indexado en el objeto de array especificado como un int.
8 int getLength(array de objetos) Este método devuelve la longitud del objeto de array especificado como un int.
9 long getLong (array de objetos, índice int) Este método devuelve el valor del componente indexado en el objeto de array especificado como un largo.
10 short getShort (array de objetos, índice int) Este método devuelve el valor del componente indexado en el objeto de array especificado como un valor corto.
11 Objeto newInstance (Clase <E> tipo de componente, longitud int) Este método crea una nueva array con el tipo de componente y la longitud especificados.
12 Objeto newInstance(Clase<E> tipocomponente, int… dimensiones) Este método crea una nueva array con el tipo de componente y las dimensiones especificadas.
13 conjunto vacío (array de objetos, índice int, valor de objeto) Este método establece el valor del componente indexado del objeto de array especificado en el nuevo valor especificado.
14 void setBoolean(array de objetos, int index, boolean z) Este método establece el valor del componente indexado del objeto de array especificado en el valor booleano especificado.
15 void setByte (array de objetos, índice int, byte b) Este método establece el valor del componente indexado del objeto de array especificado en el valor de byte especificado.
dieciséis void setChar (array de objetos, índice int, char c) Este método establece el valor del componente indexado del objeto de array especificado en el valor de char especificado.
17 void setDouble (array de objetos, índice int, doble d) Este método establece el valor del componente indexado del objeto de array especificado en el valor doble especificado.
18 void setFloat (array de objetos, índice int, float f) Este método establece el valor del componente indexado del objeto de array especificado en el valor flotante especificado.
19 void setInt(array de objetos, índice int, i int) Este método establece el valor del componente indexado del objeto de array especificado en el valor int especificado.
20 void setLong (array de objetos, índice int, largo l) Este método establece el valor del componente indexado del objeto de array especificado en el valor largo especificado.
21 void setShort (array de objetos, índice int, s cortos) Este método establece el valor del componente indexado del objeto de array especificado en el valor corto especificado. 

¿Cómo crear una array usando java.lang.util.reflect.Array Class?

Crear una array usando reflect.Array Class es diferente de la forma habitual. El proceso para crear una array de este tipo es el siguiente: 

  • Obtener el tamaño de la array que se creará
  • Para crear una array (digamos de la clase X), use el método newInstance() de la clase Array para pasar la clase X como el tipo de la array y el tamaño de la array, como parámetros.

Sintaxis: 

X[] arrayOfXType = (X[]) Array.newInstance(X.class, size);

Donde X se reemplazará por el tipo de array como int, double, etc.

  • Este método devuelve una array de objetos del tamaño dado, luego se convierte en el tipo X[] requerido.
  • Por lo tanto, se ha creado la array requerida de tipo X.

A continuación se muestra un ejemplo para crear una array de enteros de tamaño 5, utilizando la clase Array:

Ejemplo: Para crear una array de enteros de tamaño 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));
    }
}
Producción

[0, 0, 0, 0, 0]

¿Cómo agregar elementos en una array usando java.lang.util.reflect.Array Class?

Al igual que crear una array, agregar elementos en la array usando reflect.Array Class también es diferente de la forma habitual. El proceso para agregar elementos en una array de este tipo es el siguiente: 

  • Obtenga el valor del elemento que se agregará.
  • Obtenga el índice en el que se agregará el elemento.
  • Para agregar un elemento en una array (por ejemplo, de la clase X), use el método setX() de la clase Array, donde X se reemplazará por el tipo de la array, como setInt(), setDouble(), etc. Este método toma X[] como primer parámetro, el índice en el que se agrega el elemento como segundo parámetro y el elemento como tercer parámetro en la siguiente sintaxis.

Sintaxis: 

Array.setX(X[], indexOfInsertion, elementToBeInserted);

Donde X se reemplazará por el tipo de array como int, double, etc.

  • Este método inserta el elemento en el índice especificado en esta array.
  • Por lo tanto, el elemento requerido se ha insertado en la array.

A continuación se muestra un ejemplo para agregar un elemento a una array de enteros, utilizando la clase Array:

Ejemplo: Para agregar un elemento a una array de enteros: 

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));
    }
}
Producción

[10, 20, 30]

¿Cómo recuperar elementos en una array usando java.lang.util.reflect.Array Class?

Al igual que crear una array, recuperar elementos de la array utilizando reflect.Array Class también es diferente de la forma habitual. El proceso para recuperar elementos en una array de este tipo es el siguiente: 

  • Obtenga el índice en el que se va a recuperar el elemento.
  • Para recuperar un elemento en una array (por ejemplo, de la clase X), use el método getX() de la clase Array, donde X se reemplazará por el tipo de la array, como getInt(), getDouble(), etc. Este método toma el X[] como el primer parámetro y el índice en el que se recupera el elemento como el segundo parámetro en la siguiente sintaxis.

Sintaxis: 

Array.getX(X[], indexOfRetrieval);

Donde X se reemplazará por el tipo de array como int, double, etc.

  • Este método recupera el elemento en el índice especificado de esta array.
  • Por lo tanto, el elemento requerido se ha recuperado de la array.

A continuación se muestra un ejemplo para recuperar un elemento de una array de enteros utilizando la clase Array:

Ejemplo: Para recuperar un elemento de una array de enteros: 

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));
    }
}
Producción

[10, 20, 30]
Element at index 0: 10
Element at index 1: 20
Element at index 2: 30

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *