Heim > Java > javaLernprogramm > Warum müssen Lambda-Ausdrucksvariablen tatsächlich endgültig sein?

Warum müssen Lambda-Ausdrucksvariablen tatsächlich endgültig sein?

DDD
Freigeben: 2024-12-24 17:01:11
Original
341 Leute haben es durchsucht

Why Must Lambda Expression Variables Be Effectively Final?

Lambda-Ausdrücke: Umgang mit Variablenunveränderlichkeit

In Lambda-Ausdrücken wird erwartet, dass Variablen, die im Rahmen des Ausdrucks verwendet werden, entweder endgültig oder „effektiv endgültig“ sind. Diese Einschränkung ergibt sich aus der Unveränderlichkeitsanforderung an erfasste Variablen.

Die Java Language Specification (JLS) erklärt dies in §15.27.2:

„Die Beschränkung auf effektiv endgültige Variablen verbietet den Zugriff auf dynamisch.“ -Änderung lokaler Variablen, deren Erfassung wahrscheinlich zu Parallelitätsproblemen führen würde.“

Um das Risiko von Fehlern zu minimieren, wurde entschieden, dass erfasste Variablen niemals geändert werden sollten veränderlich. Dadurch wird sichergestellt, dass die Werte, auf die das Lambda zugreift, während der gesamten Ausführung konsistent bleiben.

Diese Einschränkung gilt nicht nur für Lambda-Ausdrücke, sondern auch für anonyme innere Klassen. Daher ist es wichtig sicherzustellen, dass die in solchen Konstrukten verwendeten Variablen entweder als endgültig oder effektiv als endgültig deklariert werden (d. h. nur einmal ein Wert zugewiesen und niemals geändert wird).

Das obige ist der detaillierte Inhalt vonWarum müssen Lambda-Ausdrucksvariablen tatsächlich endgültig sein?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage