El operador de flecha (->) en Java se explica en este artículo junto con un código de muestra para ayudarle a comprender el concepto.
El operador de flecha, que se utiliza para crear expresiones lambda, se introdujo junto con la adición de la funcionalidad de expresión lambda en Java 8. Divide el cuerpo de la expresión de los argumentos.
(parameters) -> { statements; } // Lambda expression having arrow
Para hacer que el código Java sea más comprensible y conciso, se puede emplear la expresión lambda, que fue introducida por Java 8, para clases anónimas.
A continuación se muestra una ilustración de cómo crear una clase anónima usando Java antes de Java 8.
ejemplos de código java
Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } };
Y así es como podemos llevar a cabo la tarea antes mencionada en Java 8 utilizando una expresión lambda.
Runnable r1 = ()-> System.out.print(' method Run ');
Para comprender mejor cómo utilizar los operadores lambda y de flecha, comencemos con algunos ejemplos.
aplicaciones ocultas
¿Cómo utilizar el operador de flecha en Java?
En esta ilustración, el método draw() de la interfaz Drawable se implementó mediante una expresión lambda y el operador de flecha. Vea la ilustración a continuación.
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(); } }
Producción:
Podemos utilizar la expresión lambda en la programación Java de diversas formas porque es una excelente técnica para escribir código conciso utilizando un enfoque funcional. Aquí hay varios casos en los que podemos usarlo.
Operador de matriz en la colección Java
En esta ilustración, utilizamos una expresión lambda para filtrar datos de una ArrayList. Para lograr el resultado deseado, utilizamos el método filter() y la API de transmisión. Puede ver cuánto más sencillo es escribir código lambda que código que no es lambda. Vea la ilustración a continuación.
fórmula de albañil
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>
Producción:
cadena c en matriz
Tutorial and example: 100500.0 Website: 25000.0
Operador de matriz en hilo de Java
Para implementar el método run() de ambas interfaces ejecutables, utilizamos la expresión lambda en este caso. Una expresión lambda se puede utilizar con facilidad porque Runnable tiene una interfaz de método único. vea la ilustración a continuación.
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(); } }
Producción:
Thread is running...