Maison >Java >javaDidacticiel >Erreur Java : erreur de syntaxe de variable locale Java11 pour les paramètres Lambda (mot-clé var), comment gérer et éviter

Erreur Java : erreur de syntaxe de variable locale Java11 pour les paramètres Lambda (mot-clé var), comment gérer et éviter

PHPz
PHPzoriginal
2023-06-24 18:33:231065parcourir

Java a introduit un nouveau mot-clé var dans la dernière version Java11, qui peut remplacer les noms de types qui doivent être explicitement déclarés, simplifiant ainsi le code et améliorant la lisibilité. Cependant, lors de l'utilisation d'expressions Lambda, le mot-clé var provoque parfois une erreur de syntaxe de variable locale pour les paramètres Lambda. Cet article présentera la cause de cette erreur et comment la gérer et l'éviter.

Pourquoi cette erreur se produit-elle ?

Avant Java 11, les paramètres formels d'une expression Lambda doivent déclarer explicitement leur type. Par exemple, une expression Lambda qui reçoit une chaîne et un entier pourrait ressembler à ceci :

BiFunction<String, Integer, String> func = (String str, Integer num) -> str.substring(num);

Dans Java 11, vous pouvez utiliser le mot-clé var au lieu du nom du type pour rendre le code ci-dessus plus concis : #🎜 🎜#

BiFunction<String, Integer, String> func = (var str, var num) -> str.substring(num);

Cependant, si le compilateur ne peut pas déduire son type lors de l'utilisation du mot-clé var dans une expression Lambda, une erreur de syntaxe de variable locale pour les paramètres Lambda se produira.

Par exemple, le code suivant aura cette erreur :

BiFunction<String, Integer, String> func = (var str, num) -> str.substring(num);

Parmi eux, le deuxième paramètre num n'utilise pas le mot-clé var pour déclarer explicitement le type.

Comment gérer et éviter cette erreur ?

La façon de gérer cette erreur est très simple. Il vous suffit de spécifier explicitement le type de chaque paramètre formel dans l'expression Lambda :

BiFunction<String, Integer, String> func = (var str, Integer num) -> str.substring(num);

De la manière ci-dessus, le compilateur peut déduire correctement le type de chaque paramètre formel, éliminant ainsi l'erreur de syntaxe de variable locale pour les paramètres Lambda.

Mais une meilleure approche consiste à réduire autant que possible l'utilisation du mot-clé var dans les expressions Lambda. En Java11, le mot-clé var est principalement utilisé pour simplifier le code et améliorer la lisibilité. Cependant, dans les expressions Lambda, s'il est mal utilisé, il entraînera certains problèmes. Par conséquent, lors de l'écriture d'expressions Lambda, il est préférable de spécifier explicitement le type de chaque paramètre formel pour éviter cette erreur.

Summary

En Java11, le mot-clé var peut simplifier le code, améliorer la lisibilité et peut également apporter une forme plus concise au code lorsqu'il est utilisé dans des expressions Lambda. Mais en même temps, le mot-clé var entraînera également des problèmes détaillés, tels que les erreurs de syntaxe de variable locale pour les paramètres Lambda. Pour éviter cette erreur, nous vous recommandons de minimiser l'utilisation du mot-clé var dans les expressions lambda et de spécifier explicitement le type pour chaque paramètre formel si nécessaire. Cela peut garantir la lisibilité et l'exactitude du code et améliorer l'efficacité du développement.

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!

Déclaration:
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