Heim > Java > javaLernprogramm > Hauptteil

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

Patricia Arquette
Freigeben: 2024-11-20 13:39:22
Original
634 Leute haben es durchsucht

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);
}
Nach dem Login kopieren
  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...
}
Nach dem Login kopieren
  1. Rufen Sie die Methode mit an auf anonyme innere Klasse:
ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // Implementation...
    }
});
Nach dem Login kopieren

Lambda-Ausdrücke (Java 8)

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

ref.takingMethod(param -> {
    // Implementation...
});
Nach dem Login kopieren

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!

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