Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Riferimento a Metodo in Java | Funzionalità e Tecniche Avanzate di Java
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Strutture Dati Java

bookRiferimento a Metodo in Java

Prima di passare alla pratica con la Stream API, è opportuno esaminare alcune scorciatoie per le espressioni lambda. I programmatori si riferiscono a queste "scorciatoie" come syntactic sugar.

In questo capitolo verranno trattati i riferimenti a metodi e il loro utilizzo come sostituti delle espressioni lambda.

Riferimenti a Metodi

Analizziamo un semplice esempio di espressione lambda e proviamo a sostituirla con un riferimento a metodo:

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)); } }

Utilizzare due espressioni lambda non appare molto elegante, soprattutto quando è possibile abbreviare utilizzando i riferimenti a metodi dalle classi in cui sono dichiarati.

La sintassi sarà la seguente:

Example.java

Example.java

copy
1
(Class::Method)

Miglioriamo il codice sopra utilizzando i riferimenti ai metodi:

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); } }

Il metodo toUpperCase fa parte della classe String, quindi si utilizza la costruzione String::toUpperCase. Si noti che, utilizzando un riferimento a un metodo, l'operazione verrà applicata a ciascun elemento, quindi non è necessario utilizzare un'espressione lambda per questo. Abbiamo inoltre sostituito la stampa a schermo con System.out::print, anch'esso un riferimento a un metodo. Il programma applicherà il metodo System.out.print() a ciascun elemento.

Inoltre, IntelliJ IDEA suggerisce costantemente di sostituire le espressioni lambda con riferimenti ai metodi quando possibile, quindi non è necessario memorizzare la sintassi ogni volta.

In questo modo, IntelliJ IDEA stesso suggerirà di migliorare il tuo codice utilizzando i riferimenti ai metodi.

Riepilogo

In sintesi, i riferimenti ai metodi non aggiungono alcun onere programmatico. Non ottimizzano il processo ma nemmeno lo complicano. Questa costruzione serve semplicemente a ridurre leggermente il codice scritto e a migliorare la leggibilità. La scelta tra espressioni lambda o riferimenti ai metodi spetta a te. Ad esempio, trovo più chiaro scrivere un'espressione lambda, e poi IntelliJ la sostituirà automaticamente con un riferimento al metodo.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

bookRiferimento a Metodo in Java

Scorri per mostrare il menu

Prima di passare alla pratica con la Stream API, è opportuno esaminare alcune scorciatoie per le espressioni lambda. I programmatori si riferiscono a queste "scorciatoie" come syntactic sugar.

In questo capitolo verranno trattati i riferimenti a metodi e il loro utilizzo come sostituti delle espressioni lambda.

Riferimenti a Metodi

Analizziamo un semplice esempio di espressione lambda e proviamo a sostituirla con un riferimento a metodo:

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)); } }

Utilizzare due espressioni lambda non appare molto elegante, soprattutto quando è possibile abbreviare utilizzando i riferimenti a metodi dalle classi in cui sono dichiarati.

La sintassi sarà la seguente:

Example.java

Example.java

copy
1
(Class::Method)

Miglioriamo il codice sopra utilizzando i riferimenti ai metodi:

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); } }

Il metodo toUpperCase fa parte della classe String, quindi si utilizza la costruzione String::toUpperCase. Si noti che, utilizzando un riferimento a un metodo, l'operazione verrà applicata a ciascun elemento, quindi non è necessario utilizzare un'espressione lambda per questo. Abbiamo inoltre sostituito la stampa a schermo con System.out::print, anch'esso un riferimento a un metodo. Il programma applicherà il metodo System.out.print() a ciascun elemento.

Inoltre, IntelliJ IDEA suggerisce costantemente di sostituire le espressioni lambda con riferimenti ai metodi quando possibile, quindi non è necessario memorizzare la sintassi ogni volta.

In questo modo, IntelliJ IDEA stesso suggerirà di migliorare il tuo codice utilizzando i riferimenti ai metodi.

Riepilogo

In sintesi, i riferimenti ai metodi non aggiungono alcun onere programmatico. Non ottimizzano il processo ma nemmeno lo complicano. Questa costruzione serve semplicemente a ridurre leggermente il codice scritto e a migliorare la leggibilità. La scelta tra espressioni lambda o riferimenti ai metodi spetta a te. Ad esempio, trovo più chiaro scrivere un'espressione lambda, e poi IntelliJ la sostituirà automaticamente con un riferimento al metodo.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 4
some-alt