Java 23 führt zwei neue Vorschaufunktionen ein: Modulimportdeklarationen (Vorschau) und automatischer Modulimport in implizit deklarierten Klassen. Diese sollten nicht im Produktionscode verwendet werden, da sie noch Änderungen unterliegen.
1. Modulimportdeklarationen (Vorschau) – JEP 476
Mit der Veröffentlichung von Java 23 sind wir nun in der Lage, komplette Module in unseren Code zu importieren. Das bedeutet, dass wir alle Klassen in den von diesem Modul exportierten Paketen importieren können.
Zum Beispiel können wir das komplette java.base-Modul importieren und Klassen wie List, Set, Map und Collectors verwenden, ohne für jede Klasse individuelle Importanweisungen erstellen zu müssen. Dies kann mithilfe der Syntax „Importmodul“ erfolgen:
//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)))); } }
Beachten Sie, dass sich die importierende Klasse nicht in einem Modul befinden muss, um diese Syntax zu verwenden.
Mehrdeutige Klassennamen können auftreten, wenn zwei importierte Klassen mit demselben Namen vorhanden sind. Um dieses Problem zu lösen, müssen wir die gewünschte Klasse direkt in einer Importanweisung angeben.
Außerdem können wir, wenn ein Modul transitiv ein anderes Modul importiert, alle Klassen in den exportierten Paketen des transitiv importierten Moduls ohne explizite Importe verwenden. Beispielsweise importiert das Modul java.sql transitiv das Modul java.xml, sodass wir Klassen aus java.xml verwenden können, ohne sie explizit importieren zu müssen.
2. Automatischer Modulimport in implizit deklarierten Klassen
In Java 23 importieren implizit deklarierte Klassen automatisch das vollständige java.base-Modul.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3