InvocationLocal

public class InvocationLocal
extends Object

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


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

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

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

呼び出しがまだ進行中のときに参照されなくなったERROR(/ThreadLocal)インスタンスとは異なり、ガベージ コレクションは行われないことに注意してください。したがって、ローカルまたは非静的インスタンスの作成は、無制限に大きくなる可能性があるためお勧めしません。

警告: invocation-locals は美化されたグローバル変数であり、多くの同じ落とし穴があるため、このクラスは慎重に使用してください。

まとめ

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

InvocationLocal ()

公開メソッド

final T get ()

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

保護されたメソッド

T initialValue ()

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

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

InvocationLocal

public InvocationLocal ()

公開メソッド

得る

public final T get ()

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

戻り値
Tこの呼び出しローカルの現在実行中の呼び出しのコピー。

保護されたメソッド

初期値

protected T initialValue ()

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

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

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