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 |
この呼び出しスコープ変数の初期値 |