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