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> Tget(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。