Les modèles de chaines arrivent dans Java 21

Par:
fredericmazue

jeu, 04/05/2023 - 08:00

La proposition JEP 430 vient de passer au statut ciblée, la cible étant Java 21. C'est donc avec cette version du langage que les modèles de chaînes décrits par cette propostion seront disponibles.

Les modèles de chaîne complètent les littéraux de chaîne et les blocs de texte existants en Java en couplant le texte littéral avec des expressions intégrées et des processeurs de modèle pour produire des résultats spécialisés. Le modèles de chaînes vont ainsi simplifier l'écriture de programmes Java en facilitant l'expression de chaînes contenant des valeurs calculées au moment de l'exécution. En outre ils amélioreront la lisibilité des expressions qui mélangent du texte et des expressions, que le texte tienne sur une seule ligne source (comme avec les littéraux de chaîne) ou qu'il s'étende sur plusieurs lignes source (comme avec les blocs de texte).

Syntaxiquement, une expression de modèle ressemble à un littéral de chaîne avec un préfixe. Il y a une expression de modèle (STR) sur la deuxième ligne du code d'exemple ci-dessous :

String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan");   // true

Les modèles de chaînes vont contribuer à améliorer la sécurité des programmes Java qui composent des chaînes à partir de valeurs fournies par l'utilisateur et les transmettent à d'autres systèmes (par exemple, la création de requêtes pour des bases de données) en prenant en charge la validation et la transformation du modèle et des valeurs de ses expressions intégrées. Ils vont aussi simplifier l'utilisation des API qui acceptent les chaînes écrites dans des langages non Java (par exemple, SQL, XML et JSON).