モジュール java.base
パッケージ java.lang

クラスScopedValue.Carrier

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

public static final class ScopedValue.Carrier extends Object
Carrierは、JavaプラットフォームのプレビューAPIです。
プレビュー機能が有効な場合のみ、プログラムでCarrierを使用できます。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
「キー」のようなスコープ値の値へのマッピング。

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

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

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

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

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

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

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

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

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

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

      型パラメータ:
      R - 操作の結果のタイプ
      パラメータ:
      op - 実行する操作
      戻り値:
      結果
      例外:
      StructureViolationExceptionPREVIEW - 構造違反が検出された場合
      Exception - opが例外ありで完了した場合
      関連項目:
    • get

      public <R> R get(Supplier<? extends R> op)
      このマッピング内の各スコープ値が現在のスレッド内の値にバインドされた結果のサプライヤを起動します。 操作が(通常または例外あり)を完了すると、マッピング内の各スコープ値は、現在のスレッドでバインドされていない値に戻されるか、以前バインドされた場合は以前の値に戻されます。 opが例外ありで完了すると、このメソッドによって伝播されます。

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

      型パラメータ:
      R - 操作の結果のタイプ
      パラメータ:
      op - 実行する操作
      戻り値:
      結果
      例外:
      StructureViolationExceptionPREVIEW - 構造違反が検出された場合
      関連項目:
    • run

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

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

      パラメータ:
      op - 実行する操作
      例外:
      StructureViolationExceptionPREVIEW - 構造違反が検出された場合
      関連項目: