El método java.lang.reflect .Method.isBridge() se utiliza para comprobar si una función es una función puente o no. Este método devuelve verdadero si el objeto del método es un método puente; de lo contrario, devuelve falso.
Método puente: estos son métodos que crean una capa intermedia entre las funciones de origen y destino. Por lo general, se utiliza como parte del proceso de borrado de tipos. Significa que se requiere el método de puente como una interfaz segura de tipo.
Por ejemplo, en el Ejemplo a continuación, el método compare() que toma Object como parámetro se comporta como un método puente. Convertirá el objeto en string y llamará a la función de comparación que toma la string como parámetros. Así que compare (Objeto a, Objeto b) actúe como puente entre la fuente (El método que llama a compare()) y el destino (compare(String, String)).
Ejemplo:
public class compareValues implements Comparator { // target method public int compare(String a, String b) { } // bridge method public int compare(Object a, Object b) { return compare((String)a, (String)b); } }
Sintaxis:
public boolean isBridge()
Valor devuelto: este método devuelve verdadero si el objeto del método es un método puente según las especificaciones de JVM; de lo contrario, devuelve falso .
El siguiente programa ilustra el método isBridge() de la clase Method:
Programa 1: Programa para devolver todos los Métodos Bridge de la clase BigInteger.
Explicación: en este método, al principio se crea el objeto de clase BigInteger. Después de crear el objeto, se crea una lista de objetos de método llamando a getMethods() de la clase Object. Ahora la lista de Métodos obtenidos se itera y se verifica isBridge(). Por lo tanto, obtenemos métodos de puente. Por último, imprima los nombres de los métodos de puente.
/* * Program Demonstrate isBridge() method * of Method Class. */ import java.lang.reflect.Method; import java.math.BigInteger; public class GFG { // create main method public static void main(String args[]) { try { // create BigInteger class object Class bigInt = BigInteger.class; // get list of Method object Method[] methods = bigInt.getMethods(); System.out.println("Bridge Methods of BigInteger Class are"); // Loop through Methods list for (Method m : methods) { // check whether the method is Bridge Method or not if (m.isBridge()) { // Print Method name System.out.println("Method: " + m.getName()); } } } catch (Exception e) { // print Exception is any Exception occurs e.printStackTrace(); } } }
Bridge Methods of BigInteger Class are Method: compareTo
Programa 2: busque un método personalizado isBridge() o no.
Explicación: cuando una clase secundaria hereda el método de la clase principal, el método heredado actúa como método puente. En este Code First, se crea una clase Shape que contiene el método de dibujo y luego se crea una clase Rectangle que amplía la clase Shape. En el método principal, se crea el objeto Método para el método de dibujo de la clase Rectángulo. Ahora se comprueba si es el método Bridge() o no. Y finalmente imprimir el resultado.
// Program Demonstrate isBridge() method // of Method Class. // In this program a custom bridge method is created // and by use of isBridge(), checked for Bridge Method import java.lang.reflect.Method; public class GFG { // create class protected class Shape { public void draw() {} } // create a class which extends Shape class public class Rectangle extends Shape { } // create main method public static void main(String args[]) { try { // create class object for class // Rectangle and get method object Method m = Rectangle.class.getDeclaredMethod("draw"); // check method is bridge or not boolean isBridge = m.isBridge(); // print result System.out.println(m + " method is Bridge Method :" + isBridge); } catch (NoSuchMethodException | SecurityException e) { // Print Exception if any Exception occurs e.printStackTrace(); } } }
public void GFG$Rectangle.draw() method is Bridge Method :true
Referencia:
https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html#isBridge–
https://stackoverflow.com/questions/5007357/java-generics-bridge- método
http://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA