Passa un metodo come parametro in Java

Mohammad Irfan 12 ottobre 2023
  1. Passa un metodo come parametro utilizzando la funzione lambda in Java
  2. Passa un metodo come parametro a un metodo personalizzato in Java
  3. Passare un metodo come parametro utilizzando il metodo di riferimento in Java
Passa un metodo come parametro in Java

Questo tutorial introduce il passaggio di un metodo come parametro in Java. Per aiutarti a comprendere ulteriormente questo argomento, abbiamo incluso codici di esempio.

Non esiste il concetto di un metodo di passaggio come parametro in Java da zero. Tuttavia, possiamo ottenere ciò utilizzando la funzione lambda e il riferimento al metodo in Java 8. Quindi, in questo articolo, ci concentreremo maggiormente su questi due argomenti per passare un metodo come parametro.

La funzione lambda o l’espressione lambda è un concetto introdotto in Java 8. È un modo conciso per scrivere una funzione seguendo l’approccio dello stile funzionale. Poiché Java e Java 8 sono considerati linguaggi orientati agli oggetti, supportano l’approccio funzionale per scrivere il codice.

Passa un metodo come parametro utilizzando la funzione lambda in Java

Questo è un semplice esempio di lambda, in cui lo stiamo usando per iterare gli elementi ArrayList. Nota che stiamo passando la funzione lambda al metodo forEach() dell’interfaccia Iterable. La classe ArrayList implementa l’interfaccia Iterable.

Quindi è così che possiamo passare un metodo (funzione lambda) come parametro in Java:

public class SimpleTesting {
  public static void main(String[] args) {
    ArrayList<Integer> evens = new ArrayList<Integer>();
    evens.add(10);
    evens.add(20);
    evens.add(30);
    evens.add(40);
    evens.forEach((n) -> { System.out.println(n); }); // passing lambda as a parameter
  }
}

Produzione:

10
20
30
40

Passa un metodo come parametro a un metodo personalizzato in Java

Oltre al metodo integrato forEach(), possiamo passarlo come parametro a un metodo personalizzato. In questo esempio, abbiamo creato un’interfaccia Doable con un metodo doSomething(). Nella classe SimpleTesting, abbiamo un metodo show() che chiama il metodo doSomething(). All’interno del metodo main(), abbiamo creato una funzione lambda e l’abbiamo passata al metodo show().

Nota che questa è la riga in cui stiamo passando un metodo (funzione lambda) come parametro a un metodo.

show("Hello", doa); // passing lambda function as parameter
interface Doable {
  String doSomething(String str);
}
public class SimpleTesting {
  public static void main(String[] args) {
    Doable doa = (str) -> str + " Rohan";
    show("Hello", doa); // passing lambda function as parameter
  }

  public static void show(String msg, Doable doa) {
    String greeting = doa.doSomething(msg);
    System.out.println(greeting);
  }
}

Produzione:

Hello Rohan

Passare un metodo come parametro utilizzando il metodo di riferimento in Java

Questa è un’altra soluzione che può essere utilizzata per passare un metodo come parametro a un metodo. È stato introdotto anche con la funzione lambda nella versione Java 8. In questo esempio, abbiamo utilizzato il concetto di riferimento del metodo per passare il metodo show() come parametro al costruttore Thread(), che viene eseguito durante il runtime. Guarda l’output dell’esempio di codice qui:

public class SimpleTesting {
  public static void main(String[] args) {
    // Passing method reference as a parameter
    Thread thread = new Thread(SimpleTesting::show);
    thread.start();
  }
  public static void show() {
    System.out.println("My Thread");
  }
}

Produzione:

My Thread

Articolo correlato - Java Method