Übergeben Sie eine Methode als Parameter in Java

Mohammad Irfan 12 Oktober 2023
  1. Übergeben Sie eine Methode als Parameter mit der Funktion lambda in Java
  2. Übergeben Sie eine Methode als Parameter an eine benutzerdefinierte Methode in Java
  3. Übergeben Sie eine Methode als Parameter mithilfe der Methodenreferenz in Java
Übergeben Sie eine Methode als Parameter in Java

In diesem Tutorial wird die Übergabe einer Methode als Parameter in Java eingeführt. Damit Sie dieses Thema besser verstehen, haben wir Beispielcodes eingefügt.

Es gibt kein Konzept einer Übergabemethode als Parameter in Java von Grund auf. Dies können wir jedoch erreichen, indem wir die Lambda-Funktion und die Methodenreferenz in Java 8 verwenden. In diesem Artikel konzentrieren wir uns daher mehr auf diese beiden Themen, um eine Methode als Parameter zu übergeben.

Die Lambda-Funktion oder der Lambda-Ausdruck ist ein Konzept, das in Java 8 eingeführt wurde. Es ist eine kurze Möglichkeit, eine Funktion zu schreiben, indem man dem Ansatz des funktionalen Stils folgt. Da Java und Java 8 als objektorientierte Sprachen gelten, unterstützen sie den funktionalen Ansatz zum Schreiben des Codes.

Übergeben Sie eine Methode als Parameter mit der Funktion lambda in Java

Dies ist ein einfaches Beispiel für Lambda, wo wir es verwenden, um die ArrayList-Elemente zu iterieren. Beachten Sie, dass wir die Lambda-Funktion an die Methode forEach() der Schnittstelle Iterable übergeben. Die Klasse ArrayList implementiert die Schnittstelle Iterable.

So können wir eine Methode (Lambda-Funktion) als Parameter in Java übergeben:

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

Ausgabe:

10
20
30
40

Übergeben Sie eine Methode als Parameter an eine benutzerdefinierte Methode in Java

Abgesehen von der eingebauten Methode forEach() können wir sie als Parameter an eine benutzerdefinierte Methode übergeben. In diesem Beispiel haben wir eine Schnittstelle Doable mit einer Methode doSomething() erstellt. In der Klasse SimpleTesting haben wir eine Methode show(), die die Methode doSomething() aufruft. Innerhalb der Methode main() haben wir eine Lambda-Funktion erstellt und an die Methode show() übergeben.

Beachten Sie, dass dies die Zeile ist, in der wir eine Methode (Lambda-Funktion) als Parameter an eine Methode übergeben.

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

Ausgabe:

Hello Rohan

Übergeben Sie eine Methode als Parameter mithilfe der Methodenreferenz in Java

Dies ist eine weitere Lösung, die verwendet werden kann, um eine Methode als Parameter an eine Methode zu übergeben. Es wurde auch mit der Lambda-Funktion in der Java 8-Version eingeführt. In diesem Beispiel haben wir das Konzept der Methodenreferenz verwendet, um die Methode show() als Parameter an den Konstruktor Thread() zu übergeben, der zur Laufzeit ausgeführt wird. Sehen Sie sich die Ausgabe des Codebeispiels hier an:

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

Ausgabe:

My Thread

Verwandter Artikel - Java Method