El método java.lang.reflect .Method.getTypeParameters() de la clase Method devuelve una array de objetos TypeVariable declarados por la declaración genérica de este objeto Method, en orden de declaración. Los elementos de la array representan los objetos de variables de tipo declarados por Método. Este getTypeParameters() devuelve una array de longitud 0, si la declaración genérica del objeto de método no contiene variables de tipo.
Sintaxis:
public TypeVariable<Method>[] getTypeParameters()
Valor devuelto: este método devuelve una array de objetos TypeVariable declarados por la declaración genérica de este objeto Method
Excepción: este método devuelve GenericSignatureFormatError si la firma genérica de este objeto de método no coincide con el formato especificado en la especificación JVM.
El siguiente programa ilustra el método getTypeParameters() de la clase Method:
Ejemplo 1: Explicación: este código obtiene una lista de todos los métodos de una clase. Estos luego se iteran a través del bucle y se obtiene el TypeVariable, si hay algún TypeVariable definido en el momento de la declaración de esos métodos. Si hay algún TypeVariable disponible para esos métodos, se imprime el nombre de TypeVariable.
Java
/* * Program Demonstrate getTypeParameters() method * of Method Class. */ import java.lang.reflect.Method; import java.lang.reflect.TypeVariable; public class GFG { // In this method, there is a // Type parameter N which extends Number class public <N extends Number> void getSampleMethod(N n) { } // create main method public static void main(String args[]) { try { // create class object for class name GFG Class c = GFG.class; // get list of all Method objects of class GFG Method[] methods = c.getMethods(); // loop through all methods and // try to get Type Parameter of Method for (Method m : methods) { // get TypeVariable array by getTypeParameters() method TypeVariable[] types = m.getTypeParameters(); // print Type Parameter details for every TypeVariable for (TypeVariable t : types) { // print type parameter name // along with there method name System.out.println("Type variable for Method Name " + m.getName() + " is " + t.getName()); } } } catch (Exception e) { // print Exception Message if // any exception occurred in program e.printStackTrace(); } } }
Type variable for Method Name getSampleMethod is N
Ejemplo 2: En este programa hay más de un tipo de parámetro de métodos. En este programa, el parámetro de tipo se obtiene mediante la función getTypeParameter() e imprime los detalles de esos parámetros de tipo.
Java
/* * Program Demonstrate getTypeParameters() method * of Method Class having more than one type parameter of methods */ import java.lang.*; public class GFG { // In this method, // there are three Type parameters // N which extends Number class, // E extends RuntimeException Class // and C extends Character class. public <N extends Number, E extends RuntimeException, C extends Character> void getSampleMethod(N n) throws E { } // In this method, // there are Two Type parameters : // A which extends the ArrayList class, // L extends the LinkedList class public <A extends ArrayList, L extends LinkedList> L SetSampleMethod(A a, L l) { return l; } // create main method of class public static void main(String args[]) { try { // create class object for // class name GFG to get methods list // of GFG class Class c = GFG.class; // get list of all Method objects of // class GFG in array of Methods Method[] methods = c.getMethods(); // loop through all methods and // try to get Type Parameter of Method for (Method m : methods) { // get TypeVariable array by // getTypeParameters method TypeVariable[] types = m.getTypeParameters(); // If there are 1 or more than 1 // type variables for the current // method of loop then print method name if (types.length > 0) System.out.println("\nType variable Details" + " for Method Name " + m.getName()); // print Type Parameter details // for Current Method of loop for (TypeVariable t : types) { // get bounds for current TypeVariable // and print the Name of TypeVariable and bounds Type[] bounds = t.getBounds(); // print TypeVariable name and Bounds System.out.println("Name : " + t.getName()); System.out.println("Bounds : " + Arrays.toString(bounds)); } } } catch (Exception e) { // print Exception message if some Exception occurs e.printStackTrace(); } } }
Type variable Details for Method Name getSampleMethod Name : N Bounds : [class java.lang.Number] Name : E Bounds : [class java.lang.RuntimeException] Name : C Bounds : [class java.lang.Character] Type variable Details for Method Name SetSampleMethod Name : A Bounds : [class java.util.ArrayList] Name : L Bounds : [class java.util.LinkedList]
Referencia: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html#getTypeParameters–
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA