Spec-Zone.ru › OpenJDK 24

Класс ScopedValue.Carrier

java.lang.Object
java.lang.ScopedValue.Carrier
Окружающий класс:
ScopedValuePREVIEW<T>
public static final class ScopedValue.Carrier extends Object
Carrier — это предварительная версия API платформы Java.
Программы могут использовать Carrier только при включённых предварительных функциях.
Предварительные функции могут быть удалены в будущих выпусках или обновлены до постоянных функций платформы Java.
Отображение значений с областью действия, как ключа, на значения.

Carrier используется для накопления отображений, чтобы операция (интерфейс Runnable или ScopedValue.CallableOpПРЕДПРОСМОТР) могла быть выполнена со всеми значениями с областью действия в отображении, привязанными к значениям. Следующий пример выполняет операцию с k1, привязанным (или перепривязанным) к v1, и k2, привязанным (или перепривязанным) к v2.

    ScopedValue.where(k1, v1).where(k2, v2).run(() -> ... );

Carrier неизменяемый и потокобезопасный. Метод where возвращает новый Carrier объект, он не изменяет существующее отображение.

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

С:
21

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

Модификатор и тип Метод Описание
<R, X extends Throwable>
R
call(ScopedValue.CallableOpPREVIEW<? extends R, X> op)
Вызывает операцию, возвращающую значение, с каждым значением с областью действия в этом отображении, привязанным к его значению в текущей нити.
<T> T get(ScopedValuePREVIEW<T> key)
Возвращает значение ScopedValueПРЕДПРОСМОТР в этом отображении.
void run(Runnable op)
Выполняет операцию с каждым значением с областью действия в этом отображении, привязанным к его значению в текущей нити.
<T> ScopedValue.CarrierPREVIEW where(ScopedValuePREVIEW<T> key, T value)
Возвращает новый Carrier с отображениями из этого носителя плюс новое отображение из key на value.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API