В Java 23 представлены две новые функции предварительной версии: объявления импорта модулей (предварительная версия) и автоматический импорт модулей в неявно объявленных классах. Их не следует использовать в рабочем коде, поскольку они все еще могут быть изменены.
1. Объявления об импорте модуля (предварительная версия) – JEP 476
С выпуском Java 23 мы теперь можем импортировать в наш код полные модули. Это означает, что мы можем импортировать все классы в пакетах, экспортированных этим модулем.
Например, мы можем импортировать полный модуль java.base и использовать такие классы, как List, Set, Map и Collectors, без необходимости создавать отдельные операторы импорта для каждого класса. Это можно сделать с помощью синтаксиса «модуля импорта»:
//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)))); } }
Обратите внимание, что для использования этого синтаксиса импортирующий класс не обязательно должен находиться в модуле.
Если есть два импортированных класса с одинаковым именем, могут возникнуть неоднозначные имена классов. Чтобы решить эту проблему, нам нужно указать нужный класс непосредственно в операторе импорта.
Кроме того, когда один модуль транзитивно импортирует другой модуль, мы можем использовать все классы в экспортированных пакетах транзитивно импортированного модуля без какого-либо явного импорта. Например, модуль java.sql транзитивно импортирует модуль java.xml, поэтому мы можем использовать классы из java.xml без необходимости импортировать их явно.
2. Автоматический импорт модулей в неявно объявленных классах
В Java 23 неявно объявленные классы автоматически импортируют полный модуль java.base.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3