Usando referências de método em java

Você pode usar referências de método em Java. Aqui está um exemplo. Tomado como um todo, toda a linha de montagem acrescenta-se os preços dos DVDs vendidos. O código abaixo ilustra um programa completo usando correntes e expressões lambda.

importação java.text.NumberFormat-

importação java.util.ArrayList-

TallySales classe pública {

main (String [] args) public static void {

ArrayList<-Venda&vendas GT- = new ArrayList<> - () -

moeda NumberFormat = NumberFormat.getCurrencyInstance () -

fillTheList (vendas) -

total de dupla = sales.stream ()

.filtrar ((venda) -gt; sale.getItem () equals (."DVD"))

.mapa ((venda) -gt; sale.getPrice ())

.reduzir (0,0, (price2 -gt Price1,); Price1 + price2) -

System.out.printlnl (currency.format (total)) -

}

static void fillTheList (ArrayList<-Venda>- vendas) {

sales.add (novo Venda ("DVD", 15.00)) -



sales.add (novo Venda ("Livro", 12,00)) -

sales.add (novo Venda ("DVD", 21.00)) -

sales.add (novo Venda ("CD", 5,25)) -

}

Video: 53 - Certificação Java ( encapsulamento /métodos get e set)

}

Tome um olhar crítico sobre a última expressão lambda:

(Price1, price2) ->- Price1 +) price2

Esta expressão faz mais ou menos o mesmo trabalho que um soma método. Se a sua escolha é entre digitando um 3-line soma método e digitando uma expressão lambda 1-line, você provavelmente vai escolher a expressão lambda. Mas e se você tem uma terceira alternativa? Em vez de digitar o seu próprio soma método, você pode se referir a um já existente soma método. Usando um método existente é a coisa mais rápida e mais segura a fazer.

Como ele teria sorte, Java de Duplo classe contém um estático soma método. Você não tem que criar o seu próprio soma método. Se você executar o seguinte código:

duplo i = 5,0, J = 7.0-

System.out.printlnl (Double.sum (i, j)) -

os monitores de computador 12,0. Então, ao invés de digitar o Price1 + price2 expressão lambda, você pode criar um mÉTODO DE rEFERÊNCIA - uma expressão que se refere a um método existente.

sales.stream ()

.filtrar ((venda) ->- sale.getItem (). equals ("DVD"))

.mapa ((venda) ->- sale.getPrice ())

.reduzir (0.0, Duplo :: soma) -

Video: 20 Certificação Java (Chamadas de métodos nos objetos)

A expressão Duplo :: soma refere-se a soma método pertencente a Java de Duplo classe. Quando você usa este Duplo :: soma referência de método, você fazer a mesma coisa que a expressão última lambda faz. Todo mundo está feliz.


Publicações relacionadas