Heim  >  Artikel  >  Java  >  Wie kann ich Funktionszeiger in Java simulieren?

Wie kann ich Funktionszeiger in Java simulieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-19 01:58:03352Durchsuche

How Can I Simulate Function Pointers in Java?

Erstellen von Funktionszeigern in Java

In Java fehlt das Konzept von Funktionszeigern, die häufig verwendet werden, um Funktionen als Argumente an andere Funktionen zu übergeben. Es gibt jedoch Alternativen, die eine ähnliche Funktionalität bieten, wie etwa anonyme innere Klassen.

Stellen Sie sich eine Methode vor, die eine kleine Berechnung beinhaltet, die sich bei mehreren Methoden unterscheidet. Eine ideale Lösung wäre die Übergabe eines Funktionszeigers zur Verarbeitung dieser Codezeile.

Anonyme innere Klassen zur Rettung

Anonyme innere Klassen ermöglichen es Ihnen, eine zu erstellen Instanz einer Schnittstelle oder abstrakten Klasse direkt in Ihrem Code, ohne dass eine separate Klasse definiert werden muss. Diese Technik kann verwendet werden, um Funktionszeiger in Java zu simulieren.

Wenn Sie beispielsweise eine Funktion mit einem String-Parameter übergeben möchten, der eine Ganzzahl zurückgibt, können Sie eine Schnittstelle definieren:

interface StringFunction {
    int func(String param);
}

Eine Methode, die diesen Funktionszeiger akzeptiert, würde eine StringFunction-Instanz annehmen:

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

Sie können diese Methode wie folgt aufrufen:

takingMethod(new StringFunction() {
    public int func(String param) {
        // body
    }
});

In Java 8 und höher ist dies möglich Vereinfachen Sie diesen Code mithilfe von Lambda-Ausdrücken:

takingMethod(param -> bodyExpression);

Anonyme innere Klassen bieten eine praktikable Alternative zu Funktionszeigern in Java, indem sie es Ihnen ermöglichen, Funktionen als Argumente über eine Schnittstellenimplementierung zu übergeben. Sie ermöglichen es Ihnen, wiederverwendbare Codeblöcke zu erstellen, die leicht an bestimmte Aufgaben angepasst werden können.

Das obige ist der detaillierte Inhalt vonWie kann ich Funktionszeiger in Java simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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