L'operador de fletxa (->) a Java s'explica en aquest article juntament amb algun codi d'exemple per ajudar-vos a entendre el concepte.
L'operador de fletxa, que s'utilitza per crear expressions lambda, es va introduir juntament amb l'addició de la funcionalitat d'expressió lambda a Java 8. Divideix el cos de l'expressió dels arguments.
(parameters) -> { statements; } // Lambda expression having arrow
Per fer que el codi Java sigui més entenedor i concís, l'expressió lambda, que va ser introduïda per Java 8, es pot utilitzar per a classes anònimes.
A continuació es mostra una il·lustració de com crear una classe anònima utilitzant Java anterior a Java 8.
math.pow java
Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } };
I aquí és com podem dur a terme la tasca esmentada anteriorment a Java 8 utilitzant una expressió lambda.
Runnable r1 = ()-> System.out.print(' method Run ');
Per comprendre millor com utilitzar els operadors lambda i fletxa, comencem amb alguns exemples.
Com utilitzar l'operador de fletxa a Java?
En aquesta il·lustració, el mètode draw() de la interfície Drawable es va implementar mitjançant una expressió lambda i l'operador de fletxa. Vegeu la il·lustració següent.
cadena en mètodes java
M.java
interface Drawable{ public void draw(); } public class M { public static void main(String[] args) { int w = 20; // arrow operator Drawable d=()->{ System.out.println(' Drawing width is '+w); }; d.draw(); } }
Sortida:
què és mac os
Podem utilitzar l'expressió lambda a la programació Java de diverses maneres perquè és una tècnica fantàstica per escriure codi succis mitjançant un enfocament funcional. Aquí hi ha diversos casos en què el podem utilitzar.
Operador de matriu a la col·lecció Java
En aquesta il·lustració, utilitzem una expressió lambda per filtrar dades d'una ArrayList. Per aconseguir el resultat desitjat, hem utilitzat el mètode filter() i l'API de flux. Podeu veure quant més senzill és escriure el codi lambda que el codi no lambda. Vegeu la il·lustració següent.
M1.java
package javaexample; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; class P{ int id; String n; float pri; public P(int id, String n, float pri) { this.id = id; this.n = n; this.pri = pri; } } public class M1{ public static void main(String[] args) { List<p> l = new ArrayList</p><p>(); l.add(new P(1,' JavaTpoint ',17000)); l.add(new P(3,' Tutorial and example ',100500)); l.add(new P(2,' Website ',25000)); // using the arrow to filter data Stream</p><p> filtered_data = l.stream().filter(q -> q.pri > 17000); filtered_data.forEach( p -> System.out.println(p.n+': '+p.pri) ); } } </p>
Sortida:
sincronitzar java
Tutorial and example: 100500.0 Website: 25000.0
Operador de matriu en fil Java
Per implementar el mètode run() tant de la interfície executable, hem utilitzat l'expressió lambda en aquest cas. Una expressió lambda es pot utilitzar amb facilitat perquè Runnable té una interfície de mètode únic. vegeu la il·lustració següent.
M3.java
package javaexample; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; public class M3{ public static void main(String[] args) { // using arrow operator Runnable r1=()->{ System.out.println(' Thread is running... '); }; Thread t1 = new Thread(r1); t1.start(); } }
Sortida:
Thread is running...