Класс ScopedValue.Carrier
- Окружающий класс:
ScopedValuePREVIEW<T>
public static final class ScopedValue.Carrier extends Object
Carrier — это предварительная версия API платформы Java. Carrier используется для накопления отображений, чтобы операция (интерфейс Runnable или ScopedValue.CallableOpПРЕДПРОСМОТР) могла быть выполнена со всеми значениями с областью действия в отображении, привязанными к значениям. Следующий пример выполняет операцию с k1, привязанным (или перепривязанным) к v1, и k2, привязанным (или перепривязанным) к v2.
Carrier неизменяемый и потокобезопасный. Метод where возвращает новый Carrier объект, он не изменяет существующее отображение.
Если не указано иное, передача null аргумента методу в этом классе приведёт к исключению NullPointerException.
- С:
- 21
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
<R, X extends Throwable> |
call |
Вызывает операцию, возвращающую значение, с каждым значением с областью действия в этом отображении, привязанным к его значению в текущей нити. |
<T> T |
get |
Возвращает значение ScopedValueПРЕДПРОСМОТР в этом отображении. |
void |
run |
Выполняет операцию с каждым значением с областью действия в этом отображении, привязанным к его значению в текущей нити. |
<T> ScopedValue.CarrierPREVIEW |
where |
Возвращает новый Carrier с отображениями из этого носителя плюс новое отображение из key на value. |
Подробное описание методов
where
public <T> ScopedValue.CarrierPREVIEW where(ScopedValuePREVIEW<T> key, T value)
Carrier с отображениями из этого носителя плюс новое отображение из key на value. Если в этом носителе уже есть отображение для значения с областью действия key, то оно будет отображаться на новое значение value. Текущий носитель неизменяемый, поэтому он не изменяется этим методом.- Параметры типа:
T- тип значения- Параметры:
-
key- ключ значения с областью действия -
value- значение, может бытьnull - Возвращает:
- новый
Carrierс отображениями из этого носителя плюс новое отображение
get
public <T> T get(ScopedValuePREVIEW<T> key)
ScopedValueПРЕДПРОСМОТР в этом отображении.- Параметры типа:
T- тип значения- Параметры:
-
key- ключ значения с областью действия - Возвращает:
- значение
- Исключения:
-
NoSuchElementException- если ключ отсутствует в этом отображении
call
public <R, X extends Throwable> R call(ScopedValue.CallableOpPREVIEW<? extends R, X> op) throws X
op завершается с исключением, то оно распространяется этим методом. Значения с областью действия предназначены для использования в структурированном виде. Если код, вызванный напрямую или косвенно операцией, создаёт StructuredTaskScopeПРЕДПРОСМОТР, но не закрываетПРЕДПРОСМОТР его, то это распознаётся как нарушение структуры при завершении операции (нормально или с исключением). В этом случае базовая структура StructuredTaskScope закрывается, и выбрасывается StructureViolationExceptionПРЕДПРОСМОТР.
- Параметры типа:
R- тип результата операцииX- тип исключения, выбрасываемого операцией- Параметры:
-
op- операция для выполнения - Возвращает:
- результат
- Исключения:
-
StructureViolationExceptionPREVIEW- если обнаружено нарушение структуры -
X- еслиopзавершается с исключением - С:
- 23
run
public void run(Runnable op)
op завершается с исключением, то оно распространяется этим методом. Значения с областью действия предназначены для использования в структурированном виде. Если код, вызванный напрямую или косвенно операцией, создаёт StructuredTaskScopeПРЕДПРОСМОТР, но не закрываетПРЕДПРОСМОТР его, то это распознаётся как нарушение структуры при завершении операции (нормально или с исключением). В этом случае базовая структура StructuredTaskScope закрывается, и выбрасывается StructureViolationExceptionПРЕДПРОСМОТР.
- Параметры:
-
op- операция для выполнения - Исключения:
-
StructureViolationExceptionPREVIEW- если обнаружено нарушение структуры
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/ScopedValue.Carrier.html
Carrierтолько при включённых предварительных функциях.