Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Referencia a Métodos en Java | Características y Técnicas Avanzadas de Java
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Estructuras de Datos en Java

bookReferencia a Métodos en Java

Antes de comenzar a practicar con la API Stream, es conveniente explorar algunos atajos para las expresiones lambda. Los programadores se refieren a estos "atajos" como azúcar sintáctico.

En este capítulo, abordaremos las referencias a métodos y cómo utilizarlas como sustitutos de las expresiones lambda.

Referencias a Métodos

Veamos un ejemplo sencillo de una expresión lambda e intentemos reemplazarla por una referencia a método:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(e -> e.toUpperCase()).forEach(e -> System.out.print(e)); } }

El uso de dos expresiones lambda no resulta muy elegante, especialmente cuando se pueden simplificar utilizando referencias a métodos de las clases donde están declaradas.

La sintaxis será la siguiente:

Example.java

Example.java

copy
1
(Class::Method)

Mejorar el código anterior utilizando referencias a métodos:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(String::toUpperCase).forEach(System.out::print); } }

El método toUpperCase es parte de la clase String, por lo que se utiliza la construcción String::toUpperCase. Tenga en cuenta que al usar una referencia a método, la operación se aplicará a cada elemento, por lo que no es necesario utilizar una expresión lambda para esto. También se reemplazó la impresión en pantalla por System.out::print, que también es una referencia a método. El programa aplicará el método System.out.print() a cada elemento.

Por cierto, IntelliJ IDEA sugiere constantemente reemplazar expresiones lambda por referencias a métodos si es posible, por lo que no es necesario memorizar la sintaxis cada vez.

De esta manera, IntelliJ IDEA sugerirá mejorar tu código utilizando referencias a métodos.

Resumen

En resumen, las referencias a métodos no agregan ninguna carga programática. No optimizan el proceso, pero tampoco lo complican. Esta construcción sirve simplemente para reducir ligeramente el código escrito y mejorar la legibilidad. La decisión de utilizar expresiones lambda o referencias a métodos depende de ti. Por ejemplo, considero más claro escribir una expresión lambda, y luego IntelliJ la reemplazará automáticamente por una referencia a método.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you show more examples of method references?

What are the different types of method references in Java?

When should I use a method reference instead of a lambda expression?

bookReferencia a Métodos en Java

Desliza para mostrar el menú

Antes de comenzar a practicar con la API Stream, es conveniente explorar algunos atajos para las expresiones lambda. Los programadores se refieren a estos "atajos" como azúcar sintáctico.

En este capítulo, abordaremos las referencias a métodos y cómo utilizarlas como sustitutos de las expresiones lambda.

Referencias a Métodos

Veamos un ejemplo sencillo de una expresión lambda e intentemos reemplazarla por una referencia a método:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(e -> e.toUpperCase()).forEach(e -> System.out.print(e)); } }

El uso de dos expresiones lambda no resulta muy elegante, especialmente cuando se pueden simplificar utilizando referencias a métodos de las clases donde están declaradas.

La sintaxis será la siguiente:

Example.java

Example.java

copy
1
(Class::Method)

Mejorar el código anterior utilizando referencias a métodos:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(String::toUpperCase).forEach(System.out::print); } }

El método toUpperCase es parte de la clase String, por lo que se utiliza la construcción String::toUpperCase. Tenga en cuenta que al usar una referencia a método, la operación se aplicará a cada elemento, por lo que no es necesario utilizar una expresión lambda para esto. También se reemplazó la impresión en pantalla por System.out::print, que también es una referencia a método. El programa aplicará el método System.out.print() a cada elemento.

Por cierto, IntelliJ IDEA sugiere constantemente reemplazar expresiones lambda por referencias a métodos si es posible, por lo que no es necesario memorizar la sintaxis cada vez.

De esta manera, IntelliJ IDEA sugerirá mejorar tu código utilizando referencias a métodos.

Resumen

En resumen, las referencias a métodos no agregan ninguna carga programática. No optimizan el proceso, pero tampoco lo complican. Esta construcción sirve simplemente para reducir ligeramente el código escrito y mejorar la legibilidad. La decisión de utilizar expresiones lambda o referencias a métodos depende de ti. Por ejemplo, considero más claro escribir una expresión lambda, y luego IntelliJ la reemplazará automáticamente por una referencia a método.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4
some-alt