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.

Artículos Relacionados