Module java.base
Package java.lang

Class ScopedValue.Carrier

java.lang.Object
java.lang.ScopedValue.Carrier
封闭类:
ScopedValue预览<T>

public static final class ScopedValue.Carrier extends Object
Carrier 是Java平台的预览API。
仅当启用预览功能时,程序才能使用Carrier
预览功能可能会在将来的版本中被移除,或升级为Java平台的永久功能。
作为到值的映射。

Carrier用于累积映射,以便可以执行带有映射中所有作用域值绑定到值的操作(一个RunnableCallable)。以下示例使用k1绑定(或重新绑定)到v1,并使用k2绑定(或重新绑定)到v2来运行操作。

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

Carrier是不可变且线程安全的。where方法返回一个新的Carrier对象,它不会改变现有的映射。

除非另有说明,否则将null参数传递给此类中的方法将导致抛出NullPointerException

自:
21
  • Method Details

    • where

      public <T> ScopedValue.CarrierPREVIEW where(ScopedValuePREVIEW<T> key, T value)
      返回一个新的Carrier,其中包含来自此载体的映射以及从keyvalue的新映射。如果此载体已经为作用域值key有映射,则它将映射到新的value。当前载体是不可变的,因此此方法不会更改它。
      类型参数:
      T - 值的类型
      参数:
      key - ScopedValue
      value - 值,可以是null
      返回:
      一个新的Carrier,其中包含来自此载体的映射以及新映射
    • get

      public <T> T get(ScopedValuePREVIEW<T> key)
      返回此映射中ScopedValue预览的值。
      类型参数:
      T - 值的类型
      参数:
      key - ScopedValue
      返回:
      抛出:
      NoSuchElementException - 如果此映射中不存在键
    • call

      public <R> R call(Callable<? extends R> op) throws Exception
      使用此映射中的每个作用域值绑定到当前线程中的值的值返回操作。当操作完成(正常或异常完成)时,映射中的每个作用域值将恢复为未绑定状态,或在先前绑定时恢复为其先前的值。如果op完成时出现异常,则此方法将传播异常。

      作用域值应以结构化方式使用。如果由操作直接或间接调用的代码创建了一个StructuredTaskScope预览但未关闭预览它,则当操作完成(正常或异常完成)时,将检测到结构违规。在这种情况下,StructuredTaskScope的基础构造将被关闭,并抛出StructureViolationException预览

      类型参数:
      R - 操作结果的类型
      参数:
      op - 要运行的操作
      返回:
      结果
      抛出:
      StructureViolationException预览 - 如果检测到结构违规
      Exception - 如果op完成时出现异常
      参见:
    • get

      public <R> R get(Supplier<? extends R> op)
      调用此映射中每个作用域值绑定到当前线程中的值的结果供应商。当操作完成(正常或异常完成)时,映射中的每个作用域值将恢复为未绑定状态,或在先前绑定时恢复为其先前的值。如果op完成时出现异常,则此方法将传播异常。

      作用域值应以结构化方式使用。如果由操作直接或间接调用的代码创建了一个StructuredTaskScope预览但未关闭预览它,则当操作完成(正常或异常完成)时,将检测到结构违规。在这种情况下,StructuredTaskScope的基础构造将被关闭,并抛出StructureViolationException预览

      类型参数:
      R - 操作结果的类型
      参数:
      op - 要运行的操作
      返回:
      结果
      抛出:
      StructureViolationException预览 - 如果检测到结构违规
      参见:
    • run

      public void run(Runnable op)
      运行此映射中每个作用域值绑定到当前线程中的值的操作。当操作完成(正常或异常完成)时,映射中的每个作用域值将恢复为未绑定状态,或在先前绑定时恢复为其先前的值。如果op完成时出现异常,则此方法将传播异常。

      作用域值应以结构化方式使用。如果由操作直接或间接调用的代码创建了一个StructuredTaskScope预览但未关闭预览它,则当操作完成(正常或异常完成)时,将检测到结构违规。在这种情况下,StructuredTaskScope的基础构造将被关闭,并抛出StructureViolationException预览

      参数:
      op - 要运行的操作
      抛出:
      StructureViolationException预览 - 如果检测到结构违规
      参见: