Maison > Java > javaDidacticiel > Pourquoi les variables d'expression Lambda doivent-elles être effectivement définitives ?

Pourquoi les variables d'expression Lambda doivent-elles être effectivement définitives ?

DDD
Libérer: 2024-12-24 17:01:11
original
338 Les gens l'ont consulté

Why Must Lambda Expression Variables Be Effectively Final?

Expressions Lambda : gérer l'immuabilité des variables

Dans les expressions lambda, les variables utilisées dans le cadre de l'expression sont censées être soit finales, soit « effectivement finales ». Cette restriction découle de l'exigence d'immuabilité imposée aux variables capturées.

La spécification du langage Java (JLS) explique cela au §15.27.2 :

"La restriction aux variables effectivement finales interdit l'accès dynamique -changer les variables locales, dont la capture introduirait probablement des problèmes de concurrence."

Pour minimiser le risque de bugs, il a été décidé que les variables capturées ne devraient jamais être mutable. Cela garantit que les valeurs auxquelles accède le lambda restent cohérentes tout au long de son exécution.

Cette restriction s'applique non seulement aux expressions lambda mais également aux classes internes anonymes. Par conséquent, il est crucial de garantir que les variables utilisées dans de telles constructions sont soit déclarées finales, soit effectivement finales (c'est-à-dire qu'elles ne reçoivent une valeur qu'une seule fois et ne sont jamais modifiées).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal