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.
Conteúdo
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.