Spec-Zone.ru › OpenJDK 27

Класс ModuleLayer.Controller

java.lang.Object
java.lang.ModuleLayer.Controller
Вмещающий класс:
ModuleLayer
public static final class ModuleLayer.Controller extends Object
Управляет слоем модулей. Статические методы, определённые в ModuleLayer для создания слоёв модулей, возвращают Controller, который можно использовать для управления модулями в слое.

Если не указано иное, передача аргумента null методу этого класса приводит к выбрасыванию NullPointerException.

Примечание к API:
Следует соблюдать осторожность при работе с объектами Controller: ими ни в коем случае нельзя делиться с недоверенным кодом.
С версии:
9

Краткое описание методов

Модификатор и тип Метод Описание
ModuleLayer.Controller addExports(Module source, String pn, Module target)
Обновляет модуль source в слое, чтобы экспортировать пакет в модуль target.
ModuleLayer.Controller addOpens(Module source, String pn, Module target)
Обновляет модуль source в слое, чтобы открыть пакет для модуля target.
ModuleLayer.Controller addReads(Module source, Module target)
Обновляет модуль source в слое, чтобы он читал модуль target.
ModuleLayer.Controller enableNativeAccess(Module target)
Ограниченный доступ.
Предоставляет модулю в слое доступ к нативному коду, если модуль вызывающего кода имеет доступ к нативному коду.
ModuleLayer layer()
Возвращает слой, которым управляет этот объект.

Методы, объявленные в классе 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, либо до истечения определённого промежутка реального времени.

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

layer

public ModuleLayer layer()
Возвращает слой, которым управляет этот объект.
Возвращает:
слой модулей

addReads

public ModuleLayer.Controller addReads(Module source, Module target)
Обновляет модуль source в слое, чтобы он читал модуль target. Этот метод ничего не делает, если source уже читает target.
Примечание по реализации:
Добавленные этим методом рёбра чтения являются слабыми и не препятствуют сборке target сборщиком мусора, когда source доступен через сильную ссылку.
Параметры:
source — исходный модуль
target — целевой модуль, который нужно читать
Возвращает:
этот контроллер
Выбрасывает:
IllegalArgumentException — если source не входит в слой модулей
См. также:
  • Module.addReads(Module)

addExports

public ModuleLayer.Controller addExports(Module source, String pn, Module target)
Обновляет модуль source в слое, чтобы экспортировать пакет в модуль target. Этот метод ничего не делает, если source уже экспортирует пакет как минимум в target.

Экспорт пакета с помощью этого метода не позволяет целевому модулю рефлексивно установить значение или получить дескриптор метода с правом записи для общедоступного поля final, объявленного в общедоступном классе пакета.

Параметры:
source — исходный модуль
pn — имя пакета
target — целевой модуль
Возвращает:
этот контроллер
Выбрасывает:
IllegalArgumentException — если source не входит в слой модулей или пакет не входит в исходный модуль
См. также:
  • Module.addExports(String, Module)

addOpens

public ModuleLayer.Controller addOpens(Module source, String pn, Module target)
Обновляет модуль source в слое, чтобы открыть пакет для модуля target. Этот метод ничего не делает, если source уже открывает пакет как минимум для target.

Открытие пакета с помощью этого метода не позволяет целевому модулю рефлексивно установить значение или получить дескриптор метода с правом записи для поля final, объявленного в классе пакета.

Параметры:
source — исходный модуль
pn — имя пакета
target — целевой модуль
Возвращает:
этот контроллер
Выбрасывает:
IllegalArgumentException — если source не входит в слой модулей или пакет не входит в исходный модуль
См. также:
  • Module.addOpens(String, Module)

enableNativeAccess

public ModuleLayer.Controller enableNativeAccess(Module target)
enableNativeAccess — это ограниченный метод платформы Java.
Программы могут использовать enableNativeAccess только при включённом доступе к ограниченным методам.
Ограниченные методы небезопасны и при неправильном использовании могут привести к сбою JVM или повреждению памяти.
Предоставляет модулю в слое доступ к нативному коду, если модуль вызывающего кода имеет доступ к нативному коду.
Параметры:
target — модуль, который нужно обновить
Возвращает:
этот контроллер
Выбрасывает:
IllegalArgumentException — если target не входит в слой модулей
IllegalCallerException — если вызывающий код находится в модуле, для которого не включён доступ к нативному коду
С версии:
22

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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