Heim > Java > javaLernprogramm > Hauptteil

Wie kann ich die Funktionalität eines Funktionszeigers in Java erreichen?

Patricia Arquette
Freigeben: 2024-11-19 04:27:02
Original
627 Leute haben es durchsucht

How Can I Achieve Function Pointer Functionality in Java?

Was man anstelle von Funktionszeigern in Java verwenden sollte

In der Programmiersprache Java sind Funktionszeiger eine Funktion, die es einem ermöglicht, Funktionen zu übergeben als Argumente für andere Funktionen fehlen. Es gibt jedoch Alternativen, um eine ähnliche Funktionalität zu erreichen.

Eine praktikable Option sind anonyme innere Klassen. Berücksichtigen Sie die Notwendigkeit, mehrere Methoden zu erstellen, die bis auf eine kleine Abweichung in einer einzelnen Codezeile denselben Vorgang ausführen. Anonyme innere Klassen bieten eine Lösung.

Um anonyme innere Klassen zu verwenden, muss eine Schnittstelle definiert werden, die die Methode deklariert, die übergeben wird. Wenn die Methode beispielsweise einen String-Parameter annimmt und eine Ganzzahl zurückgibt, wird die Schnittstelle würde so aussehen:

interface StringFunction {
    int func(String param);
}
Nach dem Login kopieren

Eine Methode, die den Funktionszeiger akzeptiert, würde eine Instanz der StringFunction-Schnittstelle akzeptieren, als angezeigt:

public void takingMethod(StringFunction sf) {
   int i = sf.func("my string");
   // do whatever ...
}
Nach dem Login kopieren

Um diese Methode aufzurufen, verwenden Sie anonyme innere Klassen wie folgt:

ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // body
    }
});
Nach dem Login kopieren

In Java 8 und höher bieten Lambda-Ausdrücke eine prägnantere Alternative:

ref.takingMethod(param -> bodyExpression);
Nach dem Login kopieren

Dies ermöglicht die präzise und lesbare Übergabe einer Funktion als Argument, wodurch das Verhalten der Funktion effektiv nachgeahmt wird Hinweise.

Das obige ist der detaillierte Inhalt vonWie kann ich die Funktionalität eines Funktionszeigers in Java erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage