Java 8 referencias de métodos
El método al que hace referencia el nombre del método para que apunte a un método.
El método de la configuración de referencia puede hacerse más idioma compacto y concisa para reducir código redundante.
Método hace referencia a un par de dos puntos (: :).
A continuación, definimos cuatro métodos de la clase de coche como un ejemplo, la distinción entre Java soportado cuatro métodos de referencia diferente.
public static class Car { public static Car create( final Supplier< Car > supplier ) { return supplier.get(); } public static void collide( final Car car ) { System.out.println( "Collided " + car.toString() ); } public void follow( final Car another ) { System.out.println( "Following the " + another.toString() ); } public void repair() { System.out.println( "Repaired " + this.toString() ); } }
referencias de métodos estáticos: La sintaxis es la clase :: static_method, ejemplos son los siguientes:
final Car car = Car.create( Car::new ); final List< Car > cars = Arrays.asList( car );
Cualquier método de objeto de un Presupuesto clase particular: Es la clase :: ejemplos de sintaxis del método son las siguientes:
cars.forEach( Car::collide );
Método hace referencia a un objeto específico: es ejemplos de sintaxis ejemplo :: método son los siguientes:
cars.forEach( Car::repair );
Constructor Cita: La sintaxis es la clase :: nueva, o más en general la clase <T> :: nuevos ejemplos son los siguientes:
final Car police = Car.create( Car::new ); cars.forEach( police::follow );
Método referencia a instancia de
En el archivo Java8Tester.java introduzca el código siguiente:
import java.util.List; import java.util.ArrayList; public class Java8Tester { public static void main(String args[]){ List names = new ArrayList(); names.add("Google"); names.add("w3big"); names.add("Taobao"); names.add("Baidu"); names.add("Sina"); names.forEach(System.out::println); } }
Ejemplo vamos a system.out :: método println como un método estático para hacer referencia.
Aplicación de la secuencia de comandos anterior, la salida es:
$ javac Java8Tester.java $ java Java8Tester Google w3big Taobao Baidu Sina