Heim  >  Artikel  >  Java  >  Wie kann ich Funktionszeiger in Java mithilfe anonymer innerer Klassen oder Lambda-Ausdrücke simulieren?

Wie kann ich Funktionszeiger in Java mithilfe anonymer innerer Klassen oder Lambda-Ausdrücke simulieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-20 13:39:22637Durchsuche

How Can I Simulate Function Pointers in Java Using Anonymous Inner Classes or Lambda Expressions?

Funktionale Schnittstellen als Funktionszeiger in Java

In Java, wo Funktionszeiger nicht verfügbar sind, dienen anonyme innere Klassen oder Lambda-Ausdrücke als geeignete Alternativen .

Anonymous Inner Klassen

Stellen Sie sich vor, Sie benötigen Methoden, die ähnliche Aktionen ausführen, sich aber in einer einzelnen Berechnungszeile leicht unterscheiden. So implementieren Sie dies mithilfe einer anonymen inneren Klasse:

  1. Definieren Sie eine Schnittstelle, die die Funktion enthält, die Sie kapseln möchten.
interface StringFunction {
    int func(String param);
}
  1. Erstellen Sie eine Methode, die eine akzeptiert Instanz Ihrer Schnittstelle als Parameter.
public void takingMethod(StringFunction sf) {
    int i = sf.func("my string");
    // Operations...
}
  1. Rufen Sie die Methode mit an auf anonyme innere Klasse:
ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // Implementation...
    }
});

Lambda-Ausdrücke (Java 8)

Syntaktisch einfacher können Sie Lambda-Ausdrücke verwenden, um das gleiche Ergebnis zu erzielen:

ref.takingMethod(param -> {
    // Implementation...
});

Durch die Verwendung anonymer innerer Klassen oder Lambda-Ausdrücke können Sie Funktionszeiger in Java erstellen und so den Code verbessern Wiederverwendbarkeit und Flexibilität.

Das obige ist der detaillierte Inhalt vonWie kann ich Funktionszeiger in Java mithilfe anonymer innerer Klassen oder Lambda-Ausdrücke 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