Petit à petit les contours de la prochaine implémentation de Java SE LTS se dessinent. Prévu pour septembre, le kit de développement Java (JDK) 21 comprendra notamment des collections ordonnées et des modèles de chaîne de caractères. Même si au 3 mars 2023, la page de publication du JDK 21 ne mentionne encore aucune fonctionnalité, deux propositions d'amélioration de Java couvrant ces deux fonctions ont déjà été désignées pour la prochaine itération.
Des collections ordonnées
Les collections ordonnées introduisent des interfaces pour représenter des collections dans un ordre de rencontre défini. Chaque collection possède un ensemble bien définis, du premier jusqu'au dernier élément. Des API uniformes sont fournies pour accepter les premiers et derniers éléments et traiter les éléments dans l'ordre inverse. La proposition vise à répondre à une situation où le framework des collections Java manque d'un type de collection pour représenter une séquence d'éléments avec un ordre de rencontre défini.
Un ensemble uniforme d'opérations qui s'appliquent à ces collections fait également défaut. Ces lacunes étaient problématiques et suscitaient des critiques. La proposition prévoit de définir des interfaces de séquençage pour les collections, les ensembles et les cartes, et de les intégrer dans la hiérarchie existante des types de collections. Toutes ces méthodes complémentaires ont des implémentations par défaut.
Les modèles de string
Les modèles de chaîne, qui seront livrés en preview, complètent les chaînes littérales et les blocs de texte existants de Java en couplant le texte littéral avec des expressions et des processeurs intégrés pour produire des résultats spécialisés. Cette API doit simplifier l'écriture des programmes Java en facilitant l'expression des string qui incluent des valeurs calculées au moment de l'exécution. Elle promet d'améliorer la lisibilité des expressions, de renforcer la sécurité des programmes, de conserver la flexibilité et de simplifier l'utilisation des API qui acceptent les chaînes écrites dans des langages autres que Java. L'objectif est également le développement d'expressions autres que des string dérivées de la combinaison de texte littéral et d'expressions intégrées.
En tant que version LTS, JDK 21 bénéficiera de cinq années de support Premier et d'un support étendu jusqu'en septembre 2031. La version LTS actuelle est le JDK 17, publié en septembre 2021. Les versions non LTS, comme la version JDK 20 prévue pour le 21 mars et la version actuelle JDK 19, ne bénéficient que de six mois de support Premier et d'aucun support étendu. Tous les six mois, Oracle livre de nouvelles versions de l'implémentation Java SE. Parmi les autres fonctionnalités possibles du JDK 21 figurent toutes les fonctions d'incubation et d'aperçu du JDK 20, comme les Scoped values, les Record patterns et les Virtual threads. Les génériques universels et l’API VM de suivi de pile asynchrone pourraient également être inclus dans le futur JDK.