Método de campo getGenericType() en Java con ejemplos

El método getGenericType() de java.lang.reflect.Field solía devolver un objeto Type que representaba el tipo declarado de este objeto Field. El objeto de tipo devuelto puede ser una de las implementaciones de las subinterfaces de Type: GenericArrayType, ParameterizedType, WildcardType, TypeVariable, Class. Si el objeto Tipo de campo es un tipo parametrizado, el objeto Tipo devuelto debe reflejar con precisión los parámetros de tipo reales utilizados en el código fuente y si el tipo del campo subyacente es una variable de tipo o un tipo parametrizado, se crea. De lo contrario, se resuelve. Sintaxis:

public Type getGenericType()

Parámetros: Este método no acepta nada. Return : este método devuelve un objeto Type que representa el tipo declarado para el campo representado por este objeto Field. Excepción : este método devuelve las siguientes excepciones:

  • GenericSignatureFormatError: si la firma del campo genérico no se ajusta al formato especificado en The Java™ Virtual Machine Specification.
  • TypeNotPresentException: si la firma de tipo genérico del campo subyacente hace referencia a una declaración de tipo inexistente.
  • MalformedParameterizedTypeException: si la firma genérica del campo subyacente hace referencia a un tipo parametrizado que no se puede instanciar por ningún motivo.

Los siguientes programas ilustran el método getGenericType(): Programa 1: 

Java

// Java program to illustrate
// getGenericType() method
 
import java.lang.reflect.Field;
import java.lang.reflect.Type;
 
public class GFG {
 
    // initialize field
    private static int number;
 
    public static void main(String[] args)
        throws NoSuchFieldException
    {
        // get Field object
        Field field
            = GFG.class
                  .getDeclaredField("number");
 
        // apply getGenericType() method
        Type type = field.getGenericType();
 
        // print Results
        System.out.println(
            "Type class: "
            + type.getClass());
        System.out.println(
            "Type name: "
            + type.getTypeName());
    }
}
Producción:

Type class: class java.lang.Class
Type name: int

Programa 2: 

Java

// Java program to illustrate
// getGenericType() method
 
import java.lang.reflect.Field;
import java.lang.reflect.Type;
 
public class GFG {
 
    // initialize field
    final static String value = "Geeks";
 
    public static void main(String[] args)
        throws NoSuchFieldException
    {
 
        // get Field object
        Field field
            = GFG.class
                  .getDeclaredField("value");
 
        // apply getGenericType() method
        Type type = field.getGenericType();
 
        // print Results
        System.out.println(
            "Type class: "
            + type.getClass());
        System.out.println(
            "Type name: "
            + type.getTypeName());
    }
}
Producción:

Type class: class java.lang.Class
Type name: java.lang.String

Referencias: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#getGenericType–

Publicación traducida automáticamente

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