java.lang.Object
java.lang.ScopedValue.Carrier
- 封闭类:
-
ScopedValue预览<T>
Carrier
是Java平台的预览API。
预览功能可能会在将来的版本中被移除,或升级为Java平台的永久功能。
作为键到值的映射。
Carrier
用于累积映射,以便可以执行带有映射中所有作用域值绑定到值的操作(一个Runnable
或Callable
)。以下示例使用k1
绑定(或重新绑定)到v1
,并使用k2
绑定(或重新绑定)到v2
来运行操作。
Carrier
是不可变且线程安全的。where
方法返回一个新的Carrier
对象,它不会改变现有的映射。
除非另有说明,否则将null
参数传递给此类中的方法将导致抛出NullPointerException
。
- 自:
- 21
-
Method Summary
Modifier and TypeMethodDescription<R> R
使用此映射中的每个作用域值绑定到当前线程中的值的值返回操作。<T> T
get
(ScopedValuePREVIEW<T> key) 返回此映射中ScopedValue
预览的值。<R> R
调用此映射中每个作用域值绑定到当前线程中的值的结果供应商。void
运行此映射中每个作用域值绑定到当前线程中的值的操作。where
(ScopedValuePREVIEW<T> key, T value) 返回一个新的Carrier
,其中包含来自此载体的映射以及从key
到value
的新映射。
-
Method Details
-
where
返回一个新的Carrier
,其中包含来自此载体的映射以及从key
到value
的新映射。如果此载体已经为作用域值key
有映射,则它将映射到新的value
。当前载体是不可变的,因此此方法不会更改它。- 类型参数:
-
T
- 值的类型 - 参数:
-
key
-ScopedValue
键 -
value
- 值,可以是null
- 返回:
-
一个新的
Carrier
,其中包含来自此载体的映射以及新映射
-
get
返回此映射中ScopedValue
预览的值。- 类型参数:
-
T
- 值的类型 - 参数:
-
key
-ScopedValue
键 - 返回:
- 值
- 抛出:
-
NoSuchElementException
- 如果此映射中不存在键
-
call
使用此映射中的每个作用域值绑定到当前线程中的值的值返回操作。当操作完成(正常或异常完成)时,映射中的每个作用域值将恢复为未绑定状态,或在先前绑定时恢复为其先前的值。如果op
完成时出现异常,则此方法将传播异常。作用域值应以结构化方式使用。如果由操作直接或间接调用的代码创建了一个
StructuredTaskScope
预览但未关闭预览它,则当操作完成(正常或异常完成)时,将检测到结构违规。在这种情况下,StructuredTaskScope
的基础构造将被关闭,并抛出StructureViolationException
预览。- 类型参数:
-
R
- 操作结果的类型 - 参数:
-
op
- 要运行的操作 - 返回:
- 结果
- 抛出:
-
StructureViolationException预览
- 如果检测到结构违规 -
Exception
- 如果op
完成时出现异常 - 参见:
-
get
调用此映射中每个作用域值绑定到当前线程中的值的结果供应商。当操作完成(正常或异常完成)时,映射中的每个作用域值将恢复为未绑定状态,或在先前绑定时恢复为其先前的值。如果op
完成时出现异常,则此方法将传播异常。作用域值应以结构化方式使用。如果由操作直接或间接调用的代码创建了一个
StructuredTaskScope
预览但未关闭预览它,则当操作完成(正常或异常完成)时,将检测到结构违规。在这种情况下,StructuredTaskScope
的基础构造将被关闭,并抛出StructureViolationException
预览。- 类型参数:
-
R
- 操作结果的类型 - 参数:
-
op
- 要运行的操作 - 返回:
- 结果
- 抛出:
-
StructureViolationException预览
- 如果检测到结构违规 - 参见:
-
run
运行此映射中每个作用域值绑定到当前线程中的值的操作。当操作完成(正常或异常完成)时,映射中的每个作用域值将恢复为未绑定状态,或在先前绑定时恢复为其先前的值。如果op
完成时出现异常,则此方法将传播异常。作用域值应以结构化方式使用。如果由操作直接或间接调用的代码创建了一个
StructuredTaskScope
预览但未关闭预览它,则当操作完成(正常或异常完成)时,将检测到结构违规。在这种情况下,StructuredTaskScope
的基础构造将被关闭,并抛出StructureViolationException
预览。- 参数:
-
op
- 要运行的操作 - 抛出:
-
StructureViolationException预览
- 如果检测到结构违规 - 参见:
-
Carrier
。