InvocationLocal
public
class
InvocationLocal
extends Object
java.lang.Object | |
↳ | com.android.tradefed.invoker.logger.InvocationLocal<T> |
Diese Klasse bietet Variablen auf Aufrufebene.
Der Mechanismus funktioniert ähnlich wie bei ThreadLocal
. Diese Variablen unterscheiden sich von ihren normalen Pendants dadurch, dass Code in einer Aufrufabfolge, die über die get
-Methode auf eine Variable zugreift, eine eigene, unabhängig initialisierte Kopie der Variablen hat. InvocationLocal
-Instanzen sind in der Regel private statische Felder in Klassen, die einen Status mit einer Aufrufung verknüpfen möchten.
Jedem Aufruf wird eine Kopie einer Variablen auf Aufrufebene zugewiesen, solange der Aufruf läuft und auf die InvocationLocal
-Instanz zugegriffen werden kann. Nach Abschluss einer Aufrufs werden alle Kopien der lokal für den Aufruf erstellten Instanzen der Garbage Collection unterzogen, sofern keine anderen Verweise auf diese Kopien vorhanden sind.
Im Gegensatz zu ThreadLocal
-Instanzen, auf die nicht mehr verwiesen wird, während die Aufrufe noch laufen, werden sie nicht automatisch gelöscht. Das Erstellen lokaler oder nicht statischer Instanzen wird daher nicht empfohlen, da sie unbegrenzt wachsen können.
Warnung: Verwenden Sie diese Klasse sparsam, da Aufruflokale Variablen veredelte globale Variablen mit vielen derselben Fallstricke sind.
Zusammenfassung
Öffentliche Konstruktoren | |
---|---|
InvocationLocal()
|
Öffentliche Methoden | |
---|---|
final
T
|
get()
Gibt die Kopie dieser aufruflokalen Variablen der aktuell ausgeführten Aufrufs zurück. |
Geschützte Methoden | |
---|---|
T
|
initialValue()
Gibt den „Anfangswert“ der aktuellen Aufrufssitzung für diese lokal für die Aufrufssitzung geltende Variable zurück. |
Öffentliche Konstruktoren
InvocationLocal
public InvocationLocal ()
Öffentliche Methoden
get
public final T get ()
Gibt die Kopie dieser Invocation-lokalen Variablen der aktuell ausgeführten Aufrufs zurück. Wenn die Variable für die aktuelle Aufrufe keinen Wert hat, wird sie zuerst mit dem Wert initialisiert, der durch einen Aufruf der Methode initialValue()
zurückgegeben wird.
Returns | |
---|---|
T |
die Kopie dieser Aufruf-Lokalisierung der aktuell ausgeführten Aufrufe. |
Geschützte Methoden
initialValue
protected T initialValue ()
Gibt den „Anfangswert“ der aktuellen Aufrufssitzung für diese lokal für die Aufrufssitzung geltende Variable zurück. Diese Methode wird aufgerufen, wenn Code, der im Kontext der Aufrufausführung ausgeführt wird, zum ersten Mal auf die Variable mit der Methode get()
zugreift. Diese Methode wird garantiert maximal einmal pro Aufruf aufgerufen.
Diese Implementierung gibt einfach null
zurück, kann aber geändert werden, indem InvocationLocal
als Unterklasse definiert und diese Methode überschrieben wird.
Returns | |
---|---|
T |
den Anfangswert für diese Variable auf Aufrufebene |