De nombreuses nouvelles fonctionnalités ont été ajoutées à Java entre 18 et 21, mais certaines sont également en voie de sortie. On va donc lister les fonctionnalités clés qui ont été supprimées et des alternatives !
La plus grande fonctionnalité obsolète entre la période Java 18 et 21 était la dépréciation pour la suppression de la finalisation. Ce changement faisait partie de Java 18 .Il existe donc plusieurs options pour préparer nos demandes pour la suppression de la finalisation.
Le premier et le plus direct serait simplement de désactiver la finalisation avec l’option de ligne de commande : –finalization=disabled. Cela désactive tous les finalisateurs, même ceux au sein du JDK lui-même. Si notre application ne rencontre aucun problème, alors notre travail pourrait être terminé.
Si on rencontre des problèmes, JDK Flight Recorder (JFR) a été mis à jour avec le nouvel événement jdk.FinalizerStatistics pour le suivi des appels à finaliser(). Activer JFR comme ici :
Cela peut fournir un point de départ pour les changements qui pourraient être nécessaires. Si les modifications pour supprimer finalize() sont dans votre code, il y a quelques options à considérer.
Envisagez de mettre à jour les classes en utilisant finalize() pour implémenter Closeable ou AutoCloseable et en déplaçant le comportement de libération des ressources à fermer(). Cela garantirait la libération rapide des ressources en laissant un bloc d’essai avec ressources :
Locales
Les constructeurs pour java.util.Locale ont été dépréciés dans JDK 19 comme couvert dans le numéro JBS JDK-8282819. Les options de méthode statique d’usine devraient être utilisées à la place.
Le remplacement le plus direct serait celui des méthodes :
- Locale Locale.of(String)
- Locale Locale.of(String, String)
- Locale Locale.of(String, String, String)
- Locale Locale.forLanguageTag(String)
Avertissement d’émission pour le retrait du fournisseur COMPAT
Dans JDK 9, Java est passé de COMPAT à CLDR pour les données locales par défaut ; ce changement a été couvert dans JEP 252. Le numéro JBS JDK-8304982 précise qu’un avertissement sera émis lorsque COMPAT sera utilisé. La suppression de COMPAT pourrait intervenir dès JDK 22.
Supprimer la fonction d’index JAR (JDK-8302819)
La fonction JAR Index a été supprimée dans JDK 21
La fonctionnalité JAR Index est une ancienne optimisation principalement destinée à bénéficier aux applets, qui sont également en voie de sortie. Il n’y a pas de remplacement pour la fonction d’index JAR, et un avertissement sera émis lorsque -i ou –generate-index sont utilisés.