Uso de referencias de métodos en java
Video: Programación en Java, paso de arreglos como parámetros en métodos
Puede utilizar referencias de métodos en Java. He aquí un ejemplo. Tomados en su conjunto, toda la línea de montaje se suma el precio de los DVD vendidos. El código siguiente muestra un programa completo usando las corrientes y expresiones lambda.
importación java.text.NumberFormat-
importación java.util.ArrayList-
TallySales clase pública {
principales (args String []) {public static void
Video: Bloque Java 6.2: Static en Atributos y Metodos
Lista de arreglo<-Sale&ventas GT- = new ArrayList&ntegrada> - (+) -
NumberFormat moneda = NumberFormat.getCurrencyInstance () -
fillTheList (ventas) -
doble Total = sales.stream ()
.filtrar ((venta) -gt; sale.getItem () es igual a (."DVD"))
.Mapa ((venta) -gt; sale.getPrice ())
.reducir (0.0, (-gt price1, price2); price1 + price2) -
System.out.println (currency.format (total)) -
}
static void fillTheList (ArrayList<-Sale&Gt- ventas) {
sales.add (nuevo Venta ("DVD", 15.00)) -
Video: Java 8 Tutorial - 7 Referencias de Métodos (Method References)
sales.add (nuevo Venta ("Libro", 12.00)) -
sales.add (nuevo Venta ("DVD", 21.00)) -
sales.add (nuevo Venta ("discos compactos", 5.25)) -
}
}
Tome una mirada crítica a la última expresión lambda:
(Price1, price2) ->- price1 + price2)
Esta expresión hace más o menos el mismo trabajo que una suma
método. Si su elección es entre escribir una línea 3 suma
método y escribir una expresión lambda 1 línea, es probable que eligen la expresión lambda. Pero lo que si usted tiene una tercera alternativa? En lugar de escribir su propio suma
método, se puede hacer referencia a una ya existente suma
método. El uso de un método existente es la cosa más rápida y más segura de hacerlo.
La Chispa de la Vida, Java Doble
clase contiene una estática suma
método. Usted no tiene que crear su propio suma
método. Si ejecuta el siguiente código:
doble i = 5,0, j = 7.0-
System.out.println (Double.sum (i, j)) -
las pantallas de ordenador 12.0
. Así, en lugar de escribir la price1 + price2
expresión lambda, se puede crear una método de referencia - una expresión que se refiere a un método existente.
sales.stream ()
.filtrar ((venta) ->- sale.getItem (). equals ("DVD"))
Video: Ejemplo Tipos de Métodos en Java
.Mapa ((venta) ->- sale.getPrice ())
.reducir (0.0, Doble :: suma) -
La expresion Doble :: suma
se refiere a suma
método que pertenece a Java Doble
clase. Cuando se utiliza esta Doble :: suma
Método de referencia, que hace lo mismo que hace la expresión última de lambda. Todos estan contentos.