Java 23 introduit deux nouvelles fonctionnalités en version préliminaire : les déclarations d'importation de modules (préversion) et l'importation automatique de modules dans les classes implicitement déclarées. Ceux-ci ne doivent pas être utilisés dans le code de production, car ils sont encore susceptibles de changer.
1. Déclarations d'importation de module (Aperçu) - JEP 476
Avec la sortie de Java 23, nous pouvons désormais importer des modules complets dans notre code. Cela signifie que nous pouvons importer toutes les classes des packages exportés par ce module.
Par exemple, nous pouvons importer le module java.base complet et utiliser des classes telles que List, Set, Map et Collectors sans avoir à faire d'instructions d'importation individuelles pour chaque classe. Cela peut être fait en utilisant la syntaxe « module d'importation » :
//Old style: import java.util.Map; // or import java.util.*; import java.util.function.Function; // or import java.util.function.*; import java.util.stream.Collectors; // or import java.util.stream.*; import java.util.stream.Stream; // (can be removed)
//New Style: import module java.base; public class MyExamCloud { public static Map> groupByFirstLetter(String...values) { return Stream.of(values).collect( Collectors.groupingBy(s -> Character.toUpperCase(s.charAt(0)))); } }
Notez que la classe importatrice n'a pas besoin d'être dans un module pour utiliser cette syntaxe.
Des noms de classe ambigus peuvent survenir s'il existe deux classes importées portant le même nom. Pour résoudre ce problème, nous devons spécifier la classe souhaitée directement dans une instruction d'importation.
De plus, lorsqu'un module importe transitivement un autre module, nous pouvons utiliser toutes les classes des packages exportés du module importé transitivement sans aucune importation explicite. Par exemple, le module java.sql importe de manière transitive le module java.xml, afin que nous puissions utiliser les classes de java.xml sans avoir besoin de les importer explicitement.
2. Importation automatique de modules dans les classes implicitement déclarées
Dans Java 23, les classes implicitement déclarées importeront automatiquement le module java.base complet.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3