Класс 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 — это предварительный API платформы Java. Этот метод ограничен. Ограниченные методы небезопасны, и их неправильное использование может привести к аварийному завершению JVM или, что ещё хуже, к неявной порче памяти. Поэтому клиенты должны воздержаться от зависимости от ограниченных методов и использовать безопасные и поддерживаемые функции, где это возможно.
- Параметры:
-
target- Модуль для обновления - Возвращает:
- Этот контроллер
- Исключения:
-
IllegalArgumentException- Еслиtargetне находится в слое модулей -
IllegalCallerException- Если у вызывающего модуля нет включенного доступа к нативным функциям - С:
- 20
© 1993, 2023, 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/21/docs/api/java.base/java/lang/ModuleLayer.Controller.html
enableNativeAccessтолько при включённых функциях предварительного просмотра.