クラスScopedValue.Carrier

java.lang.Object
java.lang.ScopedValue.Carrier
含まれているクラス:
ScopedValue<T>

public static final class ScopedValue.Carrier extends Object
「キー」のようなスコープ値の値へのマッピング。

Carrierは、マッピングを累積するために使用され、マッピング内のすべてのスコープ値を使用して操作(RunnableまたはScopedValue.CallableOp)を実行できます。 次の例では、k1が(またはリバウンド)をv1にバインドし、k2が(またはリバウンド)をv2にバインドした操作を実行します。

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

Carrierは不変でスレッド・セーフです。 whereメソッドは、新しいCarrierオブジェクトを返し、既存のマッピングを変更しません。

特に指定しないかぎり、このクラスのメソッドにnull引数を渡すと、NullPointerExceptionがスローされます。

導入されたバージョン:
25
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    <R, X extends Throwable>
    R
    call(ScopedValue.CallableOp<? extends R, X> op)
    このマッピングの各スコープ値を使用して、現在のスレッドの値にバインドされた値を返す操作をコールします。
    <T> T
    get(ScopedValue<T> key)
    このマッピングのScopedValueの値を返します。
    void
    このマッピング内の各スコープ値を現在のスレッド内の値にバインドした操作を実行します。
    where(ScopedValue<T> key, T value)
    このキャリアからのマッピングに加えて、keyからvalueへの新しいマッピングを含む新しいCarrierを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • メソッドの詳細

    • where

      public <T> ScopedValue.Carrier where(ScopedValue<T> key, T value)
      このキャリアからのマッピングに加えて、keyからvalueへの新しいマッピングを含む新しいCarrierを返します。 このキャリアにスコープ値keyのマッピングがすでにある場合は、新しいvalueにマップされます。 現在のキャリアは不変であるため、このメソッドでは変更されません。
      型パラメータ:
      T - 値の型
      パラメータ:
      key - ScopedValueキー
      value - 値はnullです
      戻り値:
      このキャリアからのマッピングと新しいマッピングを含む新しいCarrier
    • get

      public <T> T get(ScopedValue<T> key)
      このマッピングのScopedValueの値を返します。
      型パラメータ:
      T - 値の型
      パラメータ:
      key - ScopedValueキー
      戻り値:
      スロー:
      NoSuchElementException - キーがこのマッピングに存在しない場合
    • call

      public <R、 X extends Throwable> R call(ScopedValue.CallableOp<? extends R、 X> op)Xをスローします
      このマッピングの各スコープ値を使用して、現在のスレッドの値にバインドされた値を返す操作をコールします。 操作が(通常または例外あり)を完了すると、マッピング内の各スコープ値は、現在のスレッドでバインドされていない値に戻されるか、以前バインドされた場合は以前の値に戻されます。 opが例外ありで完了すると、このメソッドによって伝播されます。

      スコープ値は、「構造化方式」で使用することを目的としています。 操作によって直接的または間接的に呼び出されたコードでStructuredTaskScopePREVIEWが作成され、「閉じ」PREVIEWない場合、操作で(通常または例外あり)が完了すると、「構造違反」として検出されます。 その場合、StructuredTaskScopeの基礎となる構成は閉じられ、StructureViolationExceptionPREVIEWがスローされます。

      型パラメータ:
      R - 操作の結果のタイプ
      X - 操作によってスローされた例外のタイプ
      パラメータ:
      op - 実行する操作
      戻り値:
      結果
      スロー:
      StructureViolationExceptionPREVIEW - 構造違反が検出された場合
      X - opが例外で完了した場合
    • run

      public void run(Runnable op)
      このマッピング内の各スコープ値を現在のスレッド内の値にバインドした操作を実行します。 操作が(通常または例外あり)を完了すると、マッピング内の各スコープ値は、現在のスレッドでバインドされていない値に戻されるか、以前バインドされた場合は以前の値に戻されます。 opが例外ありで完了すると、このメソッドによって伝播されます。

      スコープ値は、「構造化方式」で使用することを目的としています。 操作によって直接的または間接的に呼び出されたコードでStructuredTaskScopePREVIEWが作成され、「閉じ」PREVIEWない場合、操作で(通常または例外あり)が完了すると、「構造違反」として検出されます。 その場合、StructuredTaskScopeの基礎となる構成は閉じられ、StructureViolationExceptionPREVIEWがスローされます。

      パラメータ:
      op - 実行する操作
      スロー:
      StructureViolationExceptionPREVIEW - 構造違反が検出された場合