Класс ModuleLayer.Controller
- Вмещающий класс:
ModuleLayer
public static final class ModuleLayer.Controller extends Object
ModuleLayer для создания слоёв модулей, возвращают Controller, который можно использовать для управления модулями в слое. Если не указано иное, передача аргумента null методу этого класса приводит к выбрасыванию NullPointerException.
- Примечание к API:
- Следует соблюдать осторожность при работе с объектами
Controller: ими ни в коем случае нельзя делиться с недоверенным кодом. - С версии:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ModuleLayer.Controller |
addExports |
Обновляет модуль source в слое, чтобы экспортировать пакет в модуль target. |
ModuleLayer.Controller |
addOpens |
Обновляет модуль source в слое, чтобы открыть пакет для модуля target. |
ModuleLayer.Controller |
addReads |
Обновляет модуль source в слое, чтобы он читал модуль target. |
ModuleLayer.Controller |
enableNativeAccess |
Ограниченный доступ. Предоставляет модулю в слое доступ к нативному коду, если модуль вызывающего кода имеет доступ к нативному коду. |
ModuleLayer |
layer() |
Возвращает слой, которым управляет этот объект. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения определённого промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова 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не входит в слой модулей - См. также:
addExports
public ModuleLayer.Controller addExports(Module source, String pn, Module target)
source в слое, чтобы экспортировать пакет в модуль target. Этот метод ничего не делает, если source уже экспортирует пакет как минимум в target. Экспорт пакета с помощью этого метода не позволяет целевому модулю рефлексивно установить значение или получить дескриптор метода с правом записи для общедоступного поля final, объявленного в общедоступном классе пакета.
- Параметры:
-
source— исходный модуль -
pn— имя пакета -
target— целевой модуль - Возвращает:
- этот контроллер
- Выбрасывает:
-
IllegalArgumentException— еслиsourceне входит в слой модулей или пакет не входит в исходный модуль - См. также:
addOpens
public ModuleLayer.Controller addOpens(Module source, String pn, Module target)
source в слое, чтобы открыть пакет для модуля target. Этот метод ничего не делает, если source уже открывает пакет как минимум для target. Открытие пакета с помощью этого метода не позволяет целевому модулю рефлексивно установить значение или получить дескриптор метода с правом записи для поля final, объявленного в классе пакета.
- Параметры:
-
source— исходный модуль -
pn— имя пакета -
target— целевой модуль - Возвращает:
- этот контроллер
- Выбрасывает:
-
IllegalArgumentException— еслиsourceне входит в слой модулей или пакет не входит в исходный модуль - См. также:
enableNativeAccess
public ModuleLayer.Controller enableNativeAccess(Module target)
enableNativeAccess — это ограниченный метод платформы Java. enableNativeAccess только при включённом доступе к ограниченным методам.- Параметры:
-
target— модуль, который нужно обновить - Возвращает:
- этот контроллер
- Выбрасывает:
-
IllegalArgumentException— еслиtargetне входит в слой модулей -
IllegalCallerException— если вызывающий код находится в модуле, для которого не включён доступ к нативному коду - С версии:
- 22
© 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.