Spec-Zone.ru › OpenJDK 25

Класс ModuleDescriptor.Builder

java.lang.Object
java.lang.module.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.Exports e)
Добавляет экспортируемый пакет.
ModuleDescriptor.Builder exports(String pn)
Добавляет экспортируемый пакет.
ModuleDescriptor.Builder exports(String pn, Set<String> targets)
Добавляет экспортируемый пакет.
ModuleDescriptor.Builder exports(Set<ModuleDescriptor.Exports.Modifier> ms, String pn)
Добавляет экспортируемый пакет с указанным (возможно, пустым) набором модификаторов.
ModuleDescriptor.Builder exports(Set<ModuleDescriptor.Exports.Modifier> ms, String pn, Set<String> targets)
Добавляет экспортируемый пакет с указанным (возможно, пустым) набором модификаторов.
ModuleDescriptor.Builder mainClass(String mc)
Задает главный класс модуля.
ModuleDescriptor.Builder opens(ModuleDescriptor.Opens obj)
Добавляет открытый пакет.
ModuleDescriptor.Builder opens(String pn)
Добавляет открытый пакет.
ModuleDescriptor.Builder opens(String pn, Set<String> targets)
Добавляет открытый пакет.
ModuleDescriptor.Builder opens(Set<ModuleDescriptor.Opens.Modifier> ms, String pn)
Добавляет открытый пакет с указанным (возможно, пустым) набором модификаторов.
ModuleDescriptor.Builder opens(Set<ModuleDescriptor.Opens.Modifier> ms, String pn, Set<String> targets)
Добавляет открытый пакет с указанным (возможно, пустым) набором модификаторов.
ModuleDescriptor.Builder packages(Set<String> pns)
Добавляет пакеты в модуль.
ModuleDescriptor.Builder provides(ModuleDescriptor.Provides p)
Предоставляет службу с одной или несколькими реализациями.
ModuleDescriptor.Builder provides(String service, List<String> providers)
Предоставляет реализации службы.
ModuleDescriptor.Builder requires(ModuleDescriptor.Requires req)
Добавляет зависимость от модуля.
ModuleDescriptor.Builder requires(String mn)
Добавляет зависимость от модуля с пустым набором модификаторов.
ModuleDescriptor.Builder requires(Set<ModuleDescriptor.Requires.Modifier> ms, String mn)
Добавляет зависимость от модуля с указанным (возможно, пустым) набором модификаторов.
ModuleDescriptor.Builder requires(Set<ModuleDescriptor.Requires.Modifier> ms, String mn, ModuleDescriptor.Version compiledVersion)
Добавляет зависимость от модуля с указанным (возможно, пустым) набором модификаторов.
ModuleDescriptor.Builder uses(String service)
Добавляет зависимость от службы.
ModuleDescriptor.Builder version(ModuleDescriptor.Version v)
Задает версию модуля.
ModuleDescriptor.Builder version(String vs)
Задает версию модуля.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

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 или не может быть разобрано как строка версии
См. также:
  • ModuleDescriptor.Version.parse(String)

mainClass

public ModuleDescriptor.Builder mainClass(String mc)
Задает главный класс модуля. Пакет главного класса добавляется в модуль, если он еще не добавлен. Иными словами, этот метод эквивалентен предварительному вызову метода packages этого построителя для добавления имени пакета главного класса.
Параметры:
mc — главный класс модуля
Возвращает:
Этот построитель
Исключения:
IllegalArgumentException — если mainClass равно null или не является полным именем класса в именованном пакете

build

public ModuleDescriptor build()
Создает и возвращает ModuleDescriptor из его компонентов.

Модуль будет зависеть от "java.base", даже если эта зависимость не была объявлена (исключение составляет создание модуля с именем "java.base", поскольку он не может зависеть от самого себя). Зависимость от "java.base" будет иметь модификатор MANDATED, если зависимость не была объявлена.

Возвращает:
Дескриптор модуля

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API