Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело и будет удалено: этот элемент API может быть удален в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

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, 2026, 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.

Spec-Zone.ru

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