Класс ModuleDescriptor.Builder
- Вложенный класс:
ModuleDescriptor
public static final class ModuleDescriptor.Builder extends Object
ModuleDescriptor. ModuleDescriptor определяет методы newModule, newOpenModule и newAutomaticModule для создания построителей для создания обычных, открытых и автоматических модулей.
Множество пакетов в модуле накапливается методом
Builder, когда вызываются методы exports, opens, packages, provides и mainClass.
Имена модулей, имена пакетов и имена классов, которые являются параметрами, указанными в методах построителя, — это имена модулей, имена пакетов и полные имена классов (в именованных пакетах), как определено в Спецификации языка Java.
Пример использования:
ModuleDescriptor descriptor = ModuleDescriptor.newModule("stats.core")
.requires("java.base")
.exports("org.acme.stats.core.clustering")
.exports("org.acme.stats.core.regression")
.packages(Set.of("org.acme.stats.core.internal"))
.build();
- Примечание API:
Builderпроверяет компоненты и инварианты по мере добавления компонентов в построитель. Это делается для того, чтобы обнаруживать ошибки как можно раньше и не откладывать всю проверку на методbuild.- С:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ModuleDescriptor |
build() |
Создаёт и возвращает ModuleDescriptor из своих компонентов. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет с заданным (и, возможно, пустым) набором модификаторов. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет с заданным (и, возможно, пустым) набором модификаторов. |
ModuleDescriptor.Builder |
mainClass |
Устанавливает главный класс модуля. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет с заданным (и, возможно, пустым) набором модификаторов. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет с заданным (и, возможно, пустым) набором модификаторов. |
ModuleDescriptor.Builder |
packages |
Добавляет пакеты в модуль. |
ModuleDescriptor.Builder |
provides |
Предоставляет сервис с одним или несколькими реализациями. |
ModuleDescriptor.Builder |
provides |
Предоставляет реализации сервиса. |
ModuleDescriptor.Builder |
requires |
Добавляет зависимость от модуля. |
ModuleDescriptor.Builder |
requires |
Добавляет зависимость от модуля с пустым набором модификаторов. |
ModuleDescriptor.Builder |
requires |
Добавляет зависимость от модуля с заданным (и, возможно, пустым) набором модификаторов. |
ModuleDescriptor.Builder |
requires |
Добавляет зависимость от модуля с заданным (и, возможно, пустым) набором модификаторов. |
ModuleDescriptor.Builder |
uses |
Добавляет зависимость от сервиса. |
ModuleDescriptor.Builder |
version |
Устанавливает версию модуля. |
ModuleDescriptor.Builder |
version |
Устанавливает версию модуля. |
Подробное описание методов
requires
public ModuleDescriptor.Builder requires(ModuleDescriptor.Requires req)
- Параметры:
-
req- Зависимость - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если зависимость от модуля, для которого был инициализирован этот билдер -
IllegalStateException- Если зависимость от модуля уже была объявлена или этот билдер предназначен для автоматического модуля
requires
public ModuleDescriptor.Builder requires(Set<ModuleDescriptor.Requires.Modifier> ms, String mn, ModuleDescriptor.Version compiledVersion)
- Параметры:
-
ms- Набор модификаторов -
mn- Имя модуля -
compiledVersion- Версия модуля, записанная во время компиляции - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя модуля являетсяnull, не является допустимым именем модуля или равно имени модуля, для которого был инициализирован этот билдер -
IllegalStateException- Если зависимость от модуля уже была объявлена или этот билдер предназначен для автоматического модуля
requires
public ModuleDescriptor.Builder requires(Set<ModuleDescriptor.Requires.Modifier> ms, String mn)
- Параметры:
-
ms- Набор модификаторов -
mn- Имя модуля - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя модуля являетсяnull, не является допустимым именем модуля или равно имени модуля, для которого был инициализирован этот билдер -
IllegalStateException- Если зависимость от модуля уже была объявлена или этот билдер предназначен для автоматического модуля
requires
public ModuleDescriptor.Builder requires(String mn)
- Параметры:
-
mn- Имя модуля - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя модуля являетсяnull, не является допустимым именем модуля или равно имени модуля, для которого был инициализирован этот билдер -
IllegalStateException- Если зависимость от модуля уже была объявлена или этот билдер предназначен для автоматического модуля
exports
public ModuleDescriptor.Builder exports(ModuleDescriptor.Exports e)
- Параметры:
-
e- Экспорт - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalStateException- Еслиpackageуже объявлен как экспортируемый или этот билдер предназначен для автоматического модуля
exports
public ModuleDescriptor.Builder exports(Set<ModuleDescriptor.Exports.Modifier> ms, String pn, Set<String> targets)
- Параметры:
-
ms- Набор модификаторов -
pn- Имя пакета -
targets- Набор имён целевых модулей - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя пакета являетсяnullили не является допустимым именем пакета, набор целевых модулей пуст или набор целевых модулей содержит имя, которое не является допустимым именем модуля -
IllegalStateException- Если пакет уже объявлен как экспортируемый или этот билдер предназначен для автоматического модуля
exports
public ModuleDescriptor.Builder exports(Set<ModuleDescriptor.Exports.Modifier> ms, String pn)
- Параметры:
-
ms- Набор модификаторов -
pn- Имя пакета - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя пакета являетсяnullили не является допустимым именем пакета -
IllegalStateException- Если пакет уже объявлен как экспортируемый или этот билдер предназначен для автоматического модуля
exports
public ModuleDescriptor.Builder exports(String pn, Set<String> targets)
- Параметры:
-
pn- Имя пакета -
targets- Набор имён целевых модулей - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя пакета являетсяnullили не является допустимым именем пакета, набор целевых модулей пуст или набор целевых модулей содержит имя, которое не является допустимым именем модуля -
IllegalStateException- Если пакет уже объявлен как экспортируемый или этот билдер предназначен для автоматического модуля
exports
public ModuleDescriptor.Builder exports(String pn)
- Параметры:
-
pn- Имя пакета - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя пакета являетсяnullили не является допустимым именем пакета -
IllegalStateException- Если пакет уже объявлен как экспортируемый или этот билдер предназначен для автоматического модуля
opens
public ModuleDescriptor.Builder opens(ModuleDescriptor.Opens obj)
- Параметры:
-
obj- ОбъектOpens - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalStateException- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
opens
public ModuleDescriptor.Builder opens(Set<ModuleDescriptor.Opens.Modifier> ms, String pn, Set<String> targets)
- Параметры:
-
ms- Набор модификаторов -
pn- Имя пакета -
targets- Набор имён целевых модулей - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя пакета являетсяnullили не является допустимым именем пакета, набор целевых модулей пуст или набор целевых модулей содержит имя, которое не является допустимым именем модуля -
IllegalStateException- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
opens
public ModuleDescriptor.Builder opens(Set<ModuleDescriptor.Opens.Modifier> ms, String pn)
- Параметры:
-
ms- Набор модификаторов -
pn- Имя пакета - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя пакета являетсяnullили не является допустимым именем пакета -
IllegalStateException- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
opens
public ModuleDescriptor.Builder opens(String pn, Set<String> targets)
- Параметры:
-
pn- Имя пакета -
targets- Набор имён целевых модулей - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя пакета являетсяnullили не является допустимым именем пакета, набор целевых модулей пуст или набор целевых модулей содержит имя, которое не является допустимым именем модуля -
IllegalStateException- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
opens
public ModuleDescriptor.Builder opens(String pn)
- Параметры:
-
pn- Имя пакета - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если имя пакета являетсяnullили не является допустимым именем пакета -
IllegalStateException- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
uses
public ModuleDescriptor.Builder uses(String service)
- Параметры:
-
service- Тип сервиса - Возвращает:
- Этот билдер
- Выбрасывает:
-
IllegalArgumentException- Если тип сервиса являетсяnullили не является квалифицированным именем класса в именованном пакете -
IllegalStateException- Если зависимость от типа сервиса уже была объявлена или это билдер для автоматического модуля
provides
public ModuleDescriptor.Builder provides(ModuleDescriptor.Provides p)
provider (или фабрики поставщика) добавляется в модуль, если он ещё не добавлен.- Parameters:
-
p- The provides - Returns:
- Этот билдер
- Throws:
-
IllegalStateException- Если поставщики для типа сервиса уже объявлены
provides
public ModuleDescriptor.Builder provides(String service, List<String> providers)
- Parameters:
-
service- Тип сервиса -
providers- Список имён классов поставщиков или фабрик поставщиков - Returns:
- Этот билдер
- Throws:
-
IllegalArgumentException- Если тип сервиса или любое из имён классов поставщиковnullили не является квалифицированным именем класса в именованном пакете, или список имён классов поставщиков пуст -
IllegalStateException- Если поставщики для типа сервиса уже объявлены
packages
public ModuleDescriptor.Builder packages(Set<String> pns)
- Parameters:
-
pns- Набор (возможно пустой) имён пакетов - Returns:
- Этот билдер
- Throws:
-
IllegalArgumentException- Если какое-либо из имён пакетовnullили не является корректным именем пакета
version
public ModuleDescriptor.Builder version(ModuleDescriptor.Version v)
- Parameters:
-
v- Версия - Returns:
- Этот билдер
version
public ModuleDescriptor.Builder version(String vs)
- Parameters:
-
vs- Строка версии для разбора - Returns:
- Этот билдер
- Throws:
-
IllegalArgumentException- Еслиvsявляетсяnullили не может быть разобран как строка версии - See Also:
mainClass
public ModuleDescriptor.Builder mainClass(String mc)
packages билдера для добавления имени пакета главного класса.- Parameters:
-
mc- Главный класс модуля - Returns:
- Этот билдер
- Throws:
-
IllegalArgumentException- ЕслиmainClassявляетсяnullили не является квалифицированным именем класса в именованном пакете
build
public ModuleDescriptor build()
ModuleDescriptor из своих компонентов. Модуль потребует "java.base", даже если зависимость не была объявлена (исключением является создание модуля с именем "java.base", так как он не может требовать самого себя). Зависимость от "java.base" будет иметь модификатор MANDATED, если зависимость не была объявлена.
- Returns:
- Описание модуля
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/module/ModuleDescriptor.Builder.html