Funktionen als Argumente in Java übergeben
In Java erhöht die Möglichkeit, Funktionen als Argumente zu übergeben, die Vielseitigkeit von Code. Um dies zu erreichen, gibt es abhängig von der von Ihnen verwendeten Java-Version verschiedene Ansätze.
Java 8 und höher
Mit dem Aufkommen von Lambda-Ausdrücken in Java 8, vorbei Funktionen als Argumente werden einfach. Mit Lambda-Ausdrücken können Sie anonyme Funktionen definieren, die eine SAM-Schnittstelle (Single-Abstract-Method) implementieren. Sie können beispielsweise die folgende Schnittstelle definieren:
public interface MyInterface { String doSomething(int param1, String param2); }
Innerhalb einer Methode, die ein Argument vom Typ MyInterface akzeptiert, können Sie jetzt Lambda-Ausdrücke verwenden, um eine Funktion wie folgt zu übergeben:
class MyClass { public MyInterface myInterface = (p1, p2) -> { return p2 + p1; }; }
Vor Java 8
Vor Java 8 bestand der übliche Ansatz zur Übergabe von Funktionen als Argumente darin Kapseln Sie sie in einer Schnittstelle wie Callable. Betrachten Sie die folgende Methode:
public T myMethod(Callable<T> func) { return func.call(); }
Diese Methode akzeptiert ein Argument vom Typ Callable, das eine Funktion darstellt, die einen Wert vom Typ T zurückgibt. Sie können eine Callable-Implementierung definieren, um Ihre Funktion zu kapseln und als zu übergeben Argument für myMethod.
Beispielverwendung:
Wenn Sie eine Methode aufgerufen haben methodToPass, die Sie als Argument übergeben möchten, können Sie wie folgt eine Callable-Implementierung erstellen:
public int methodToPass() { // do something } public void dansMethod(int i, Callable<Integer> myFunc) { // do something }
Und dann die dansMethod-Methode mit der Callable-Implementierung aufrufen:
dansMethod(100, new Callable<Integer>() { public Integer call() { return methodToPass(); } });
Fazit:
Diese Ansätze bieten unterschiedliche Möglichkeiten, Funktionen als Argumente in Java zu übergeben, abhängig von Ihrer Java-Version und spezifisch Anforderungen. Durch das Verständnis dieser Techniken können Sie die Flexibilität und Wiederverwendbarkeit Ihres Java-Codes verbessern.
Das obige ist der detaillierte Inhalt vonWie kann ich in Java Funktionen als Argumente übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!