Класс 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 |
Обновляет модуль source в слое, чтобы экспортировать пакет в модуль target. |
ModuleLayer.Controller |
addOpens |
Обновляет модуль source в слое, чтобы открыть пакет для модуля target. |
ModuleLayer.Controller |
addReads |
Обновляет модуль source в слое, чтобы он читал модуль target. |
ModuleLayer.Controller |
enableNativeAccess |
Ограниченный. Предоставляет модулю в слое доступ к нативному коду, если модуль вызывающего кода имеет доступ к нативному коду. |
ModuleLayer |
layer() |
Возвращает слой, которым управляет этот объект. |
Подробное описание методов
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.- Параметры:
-
source— исходный модуль -
pn— имя пакета -
target— целевой модуль - Возвращает:
- этот контроллер
- Выбрасывает:
-
IllegalArgumentException— еслиsourceне входит в слой модулей или пакет не входит в исходный модуль - См. также:
addOpens
public ModuleLayer.Controller addOpens(Module source, String pn, Module target)
Обновляет модуль
source в слое, чтобы открыть пакет для модуля target. Этот метод ничего не делает, если source уже открывает пакет как минимум для target.- Параметры:
-
source— исходный модуль -
pn— имя пакета -
target— целевой модуль - Возвращает:
- этот контроллер
- Выбрасывает:
-
IllegalArgumentException— еслиsourceне входит в слой модулей или пакет не входит в исходный модуль - См. также:
enableNativeAccess
public ModuleLayer.Controller enableNativeAccess(Module target)
enableNativeAccess — это ограниченный метод платформы Java. Ограниченные методы небезопасны и при неправильном использовании могут привести к сбою JVM или повреждению памяти.
Предоставляет модулю в слое доступ к нативному коду, если модуль вызывающего кода имеет доступ к нативному коду.
- Параметры:
-
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/ModuleLayer.Controller.html
enableNativeAccessтолько при включённом доступе к ограниченным методам.