InvocationLocal

public class InvocationLocal
extends Object

java.lang.Object
   ↳ com.android.tradefed.invoker.logger.InvocationLocal<T>


このクラスは、呼び出しスコープの変数を提供します。

このメカニズムは ThreadLocal と同様の方法で動作します。これらの変数は、(get メソッドを介して)1 つにアクセスする呼び出しのコードに、変数の独自の独立した初期化コピーが存在するという点で、通常の変数とは異なります。InvocationLocal インスタンスは通常、呼び出しに状態を関連付けるクラスのプライベート静的フィールドです。

呼び出しが進行中で、InvocationLocal インスタンスにアクセスできる限り、各呼び出しは呼び出しスコープ変数のコピーに関連付けられます。呼び出しが完了すると、呼び出しローカル インスタンスのコピーはすべてガベージ コレクションの対象になります(これらのコピーへの他の参照が存在する場合を除きます)。

呼び出しの処理中に参照されなくなった ThreadLocal インスタンスとは異なり、ガベージ コレクションは行われません。そのため、ローカル インスタンスや非静的インスタンスの作成は、無限に増加する可能性があるためおすすめしません。

警告: 呼び出しローカルは、多くの同じ落とし穴があるグローバル変数に過ぎないため、このクラスは慎重に使用してください。

概要

パブリック コンストラクタ

InvocationLocal()

パブリック メソッド

final T get()

この呼び出しローカル変数の、現在実行中の呼び出しのコピーを返します。

保護されたメソッド

T initialValue()

この呼び出しローカル変数の現在の呼び出しの「初期値」を返します。

パブリック コンストラクタ

InvocationLocal

public InvocationLocal ()

パブリック メソッド

get

public final T get ()

この呼び出しローカル変数の、現在実行中の呼び出しのコピーを返します。変数が現在の呼び出しの値を持たない場合は、まず initialValue() メソッドの呼び出しによって返された値に初期化されます。

戻り値
T この invocation-local の現在実行中の呼び出しのコピー。

保護されたメソッド

initialValue

protected T initialValue ()

この呼び出しローカル変数の現在の呼び出しの「初期値」を返します。このメソッドは、呼び出しのコンテキストで最初に実行されたコードが get() メソッドで変数にアクセスしたときに呼び出されます。このメソッドは、1 回の呼び出しごとに最大 1 回呼び出されることが保証されています。

この実装は単に null を返しますが、InvocationLocal をサブクラス化してこのメソッドをオーバーライドすることで変更できます。

戻り値
T この呼び出しスコープ変数の初期値