IntelliJ IDEA Java

Prise en charge des fonctionnalités de Java 18 dans IntelliJ IDEA

Read this post in other languages:
English, 한국어, 简体中文

Java 18 est disponible depuis fin mars et IntelliJ IDEA prendra en charge ses nouvelles fonctionnalités dans sa version 2022.1, qui sera publiée très prochainement.

Prise en charge des extraits de code

La balise @snippet pour le doclet standard de JavaDoc a été introduite dans le JDK 18 afin de simplifier l’inclusion d’exemples de code source dans la documentation d’API.

Même sans un wrapper explicite, le fragment de l’extrait est toujours reconnu comme du code Java. N’importe quel langage peut être spécifié et les fonctionnalités d’injection de langage fonctionneront également pour les extraits. Par exemple, les références navigables fonctionneront pour tous les éléments disponibles via les importations :

Il n’est pas nécessaire d’écrire tout le code dans l’extrait avec les liaisons de la classe. Le fragment sera reconnu de la même manière que les fragments JShell par IntelliJ IDEA.

Modèles pour les expressions switch : deuxième preview

La spécification pour la mise en correspondance des modèles pour les expressions switch introduite dans le JDK17 a été mise à jour avec deux modifications déjà prises en charge dans IntelliJ IDEA :

  • La dominance de tout type de modèle (y compris les guarded patterns) vis-à-vis des cases constantes. Il n’y a pas de changement en ce qui concerne les modèles et les cases non constantes.

  • Pour les hiérarchies scellées, il arrive que les sous-types ne puissent pas être utilisés pour un type de sélecteur ou convertis en types de sélecteur. Vous n’avez plus besoin de traiter ces sous-types pour rendre les instructions switch exhaustives.

Autres mises à jour

À partir de Java 18, les classes internes non statiques (anonymes ou non) n’incluent pas `this` si ce dernier n’est pas utilisé. L’inspection Cleaner captures object reference a été mise à jour en conséquence. Cela ne déclenchera pas l’avertissement suivant dans le code :

The inspection: Java | Probable bugs | Cleaner captures object reference

De plus, dans le JDK18, le jeu de caractères par défaut est désormais UTF-8, au lieu de différents jeux de caractères par défaut en fonction de la plateforme. L’inspection Implicit platform default charset, qui signale les appels de méthode et de constructeur utilisant implicitement le jeu de caractères par défaut de la plateforme, a été mise à jour en conséquence.

Auteur de l’article original en anglais :

Delphine Massenhove

Olga Klisho

Discover more