Класс 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 (или фабрики поставщика) добавляется в модуль, если он еще не добавлен.- Параметры:
-
p— описание предоставляемой службы - Возвращает:
- Этот построитель
- Исключения:
-
IllegalStateException— если поставщики для этого типа службы уже объявлены
provides
public ModuleDescriptor.Builder provides(String service, List<String> providers)
- Параметры:
-
service— тип службы -
providers— список имен классов поставщиков или фабрик поставщиков - Возвращает:
- Этот построитель
- Исключения:
-
IllegalArgumentException— если тип службы или любое из имен классов поставщиков —nullили не является полным именем класса в именованном пакете либо список имен классов поставщиков пуст -
IllegalStateException— если поставщики для этого типа службы уже объявлены
packages
public ModuleDescriptor.Builder packages(Set<String> pns)
- Параметры:
-
pns— (возможно, пустой) набор имен пакетов - Возвращает:
- Этот построитель
- Исключения:
-
IllegalArgumentException— если любое из имен пакетов —nullили не является допустимым именем пакета
version
public ModuleDescriptor.Builder version(ModuleDescriptor.Version v)
- Параметры:
-
v— версия - Возвращает:
- Этот построитель
version
public ModuleDescriptor.Builder version(String vs)
- Параметры:
-
vs— строка версии для разбора - Возвращает:
- Этот построитель
- Исключения:
-
IllegalArgumentException— еслиvsравноnullили не может быть разобрано как строка версии - См. также:
mainClass
public ModuleDescriptor.Builder mainClass(String mc)
packages этого построителя для добавления имени пакета главного класса.- Параметры:
-
mc— главный класс модуля - Возвращает:
- Этот построитель
- Исключения:
-
IllegalArgumentException— еслиmainClassравноnullили не является полным именем класса в именованном пакете
build
public ModuleDescriptor build()
ModuleDescriptor из его компонентов. Модуль будет зависеть от "java.base", даже если эта зависимость не была объявлена (исключение составляет создание модуля с именем "java.base", поскольку он не может зависеть от самого себя). Зависимость от "java.base" будет иметь модификатор MANDATED, если зависимость не была объявлена.
- Возвращает:
- Дескриптор модуля
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/module/ModuleDescriptor.Builder.html