java.lang.reflect.Field Clase en Java

La capacidad del software para analizarse a sí mismo se conoce como reflexión. Esto lo proporciona java.lang.reflectEl paquete y los elementos en Class .Field tienen el mismo propósito que todo el mecanismo de reflexión, analizar un componente de software y describir sus capacidades dinámicamente, en tiempo de ejecución en lugar de en tiempo de compilación. Java, como muchos otros lenguajes, se tipifica estáticamente. Los mecanismos de reflexión permiten pasarlo por alto hasta cierto punto e introducir algunas características más dinámicas, como, por ejemplo, la recuperación del valor del campo por nombre. El paquete java.lang.reflect incluye varias interfaces. De especial interés es Member que define métodos que permiten obtener información sobre un campo, constructor o método de una clase. También hay diez clases en este paquete, es decir, AccessibleObject, Array, Constructor, Executable, Field, Method, Modifier, Parameter, Proxy, ReflectPermission.

La siguiente aplicación ilustra un uso simple de la reflexión de Java. Imprime los campos de la clase java.awt.Dimension . El programa comienza con el método forName() de Class para obtener un objeto de clase para java.awt.Dimension. Una vez obtenido esto, se utiliza getFields() para analizar el objeto de clase. Devuelven una array de objetos Field que proporcionan información sobre el objeto.

Método                      Descripción                                                                                
es igual a (Objeto obj ) Este método compara este campo con el objeto especificado.
obtener tipo anotado() Este método devuelve un objeto AnnotatedType que representa el uso de un tipo para especificar el tipo declarado del campo representado por este campo.
obtenerAnotación() Este método devuelve la anotación de este elemento para el tipo especificado si dicha anotación está presente; de ​​lo contrario, es nulo.
obtenerAnotaciónPorTipo() Este método devuelve anotaciones que están asociadas con este elemento.
getBoolean(Objeto objeto) Este método obtiene el valor de un campo booleano estático o de instancia
getByte(Objeto objeto) Este método obtiene el valor de un campo de bytes estático o de instancia.
getChar(Objeto objeto) Este método obtiene el valor de un campo estático o de instancia de tipo char o de otro tipo primitivo convertible a tipo char a través de una conversión de ampliación
getDeclaredAnnotations() Este método devuelve anotaciones que están directamente presentes en este elemento
getDeclaringClass() Este método devuelve el objeto Class que representa la clase o interfaz que declara el campo representado por este objeto Field
getDouble(Objeto objeto) Este método obtiene el valor de un campo estático o de instancia de tipo doble o de otro tipo primitivo convertible a tipo doble a través de una conversión de ampliación
getFloat(Objeto obj ) Este método obtiene el valor de un campo estático o de instancia de tipo flotante o de otro tipo primitivo convertible a tipo flotante a través de una conversión de ampliación
getGenericType() Este método devuelve un objeto Type que representa el tipo declarado para el campo representado por este objeto Field
getInt(Objeto objeto) Este método devuelve un objeto Type que representa el tipo declarado para el campo representado por este objeto Field
obtenerLargo(Objeto objeto) Este método obtiene el valor de un campo estático o de instancia de tipo largo o de otro tipo primitivo convertible a tipo largo a través de una conversión de ampliación
obtenerModificadores() Este método devuelve los modificadores del lenguaje Java para el campo representado por este objeto Field, como un número entero
obtenerNombre() Este método devuelve el nombre del campo representado por este objeto Field
getShort(Objeto objeto) Este método obtiene el valor de un campo estático o de instancia de tipo corto o de otro tipo primitivo convertible a tipo corto a través de una conversión de ampliación
código hash() Este método devuelve un código hash para este campo.
esEnumConstant() Este método devuelve verdadero si este campo representa un elemento de un tipo enumerado; devuelve falso de lo contrario
es sintético() Este método devuelve verdadero si este campo es un campo sintético; devuelve falso de lo contrario
setBooleano(Objeto obj, booleano z) Este método establece el valor de un campo como booleano en el objeto especificado
setByte(Objeto obj, byte b) Este método establece el valor de un campo como un byte en el objeto especificado
setChar(Objeto obj, char c) Este método establece el valor de un campo como un carácter en el objeto especificado
setDouble(Objeto obj, doble d) Este método establece el valor de un campo como un doble en el objeto especificado
setFloat(Objeto obj, flotador f) Este método establece el valor de un campo como flotante en el objeto especificado
setInt(Objeto obj, int i) Este método establece el valor de un campo como un int en el objeto especificado
setLong(Objeto obj, largo l) Este método establece el valor de un campo como largo en el objeto especificado
setShort(Objeto obj, s corto) Este método establece el valor de un campo como un corto en el objeto especificado
aStringGenérica() Este método devuelve una string que describe este campo, incluido su tipo genérico
Enstringr() Este método devuelve una string que describe este campo

Ejemplo 1:

Java

import java.lang.reflect.Field; 
    
public class GFG { 
    
    public static void main(String[] args) 
        throws Exception 
    { 
    
        // Create the User class object 
        User user = new User(); 
    
        // Get the all field objects of User class 
        Field[] fields = User.class.getFields(); 
    
        for (int i = 0; i < fields.length; i++) { 
    
            // get value of the fields 
            Object value = fields[i].get(user); 
    
            // print result 
            System.out.println("Value of Field "
                               + fields[i].getName() 
                               + " is " + value); 
        } 
    } 
} 
    
// sample User class 
class User { 
    
    public static String name = "Dipsundar"; 
    
    public static String getName() 
    { 
        return name; 
    } 
    
    public static void setName(String name) 
    { 
        User.name = name; 
    } 
}
Producción

Value of Field name is Dipsundar

Ejemplo 2:

Java

import java.lang.reflect.Field;
  
public class GFG {
  
    public static void main(String[] args) throws Exception
    {
  
        // Create the User class object
        User user = new User();
  
        // Get the all field objects of User class
        Field[] fields = User.class.getFields();
  
        for (int i = 0; i < fields.length; i++) {
  
            // get value of the fields
            Object value = fields[i].get(user);
  
            // print result
            System.out.println("Value of Field "
                               + fields[i].getName()
                               + " is " + value);
        }
    }
}
  
// sample User class
class User {
  
    public static String name = "Dipsundar";
  
    public static String getName() { return name; }
  
    public static void setName(String name)
    {
        User.name = name;
    }
}
Producción

Value of Field booleanValue is false

Publicación traducida automáticamente

Artículo escrito por dipsundarmondal 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 *