InvocationLocal
public class InvocationLocal
extends Object
java.lang.Object | |
↳ | com.android.tradefed.invoker.logger.InvocationLocal<T> |
Diese Klasse stellt Variablen für den Aufrufbereich bereit.
Der Mechanismus funktioniert ähnlich wie ThreadLocal
. Diese Variablen unterscheiden sich von ihren normalen Gegenstücken dadurch, dass Code in einem Aufruf, der auf eine Variable zugreift (über seine get
Methode), über eine eigene, unabhängig initialisierte Kopie der Variablen verfügt. InvocationLocal
Instanzen sind typischerweise private statische Felder in Klassen, die einen Status mit einem Aufruf verknüpfen möchten.
Jeder Aufruf ist mit einer Kopie einer Variable im Aufrufbereich verknüpft, solange der Aufruf ausgeführt wird und auf die InvocationLocal
Instanz zugegriffen werden kann. Nachdem ein Aufruf abgeschlossen ist, unterliegen alle seine Kopien der aufruflokalen Instanzen der Garbage Collection (sofern keine anderen Verweise auf diese Kopien vorhanden sind).
Beachten Sie, dass im Gegensatz zu ThreadLocal
Instanzen, auf die nicht mehr verwiesen wird, während der Aufruf noch läuft, keine Garbage Collection durchgeführt wird. Das Erstellen lokaler oder nicht statischer Instanzen wird daher nicht empfohlen, da diese unbegrenzt wachsen können.
Warnung: Verwenden Sie diese Klasse sparsam, da Aufruflokale verherrlichte globale Variablen mit vielen der gleichen Fallstricke sind.
Zusammenfassung
Öffentliche Bauträger | |
---|---|
InvocationLocal () |
Öffentliche Methoden | |
---|---|
final T | get () Gibt die Kopie dieser aufruflokalen Variablen des aktuell ausgeführten Aufrufs zurück. |
Geschützte Methoden | |
---|---|
T | initialValue () Gibt den „Anfangswert“ des aktuellen Aufrufs für diese aufruflokale Variable zurück. |
Öffentliche Bauträger
InvocationLocal
public InvocationLocal ()
Öffentliche Methoden
erhalten
public final T get ()
Gibt die Kopie dieser aufruflokalen Variablen des aktuell ausgeführten Aufrufs zurück. Wenn die Variable für den aktuellen Aufruf keinen Wert hat, wird sie zunächst mit dem Wert initialisiert, der durch einen Aufruf der Methode initialValue()
zurückgegeben wird.
Kehrt zurück | |
---|---|
T | die Kopie dieses Aufruflokals des aktuell ausgeführten Aufrufs. |
Geschützte Methoden
Ursprünglicher Wert
protected T initialValue ()
Gibt den „Anfangswert“ des aktuellen Aufrufs für diese aufruflokale Variable zurück. Diese Methode wird aufgerufen, wenn der im Kontext des Aufrufs ausgeführte Code zum ersten Mal mit der get()
Methode auf die Variable zugreift. Diese Methode wird garantiert höchstens einmal pro Aufruf aufgerufen.
Diese Implementierung gibt einfach null
zurück, kann aber durch Unterklassifizierung InvocationLocal
und Überschreiben dieser Methode geändert werden.
Kehrt zurück | |
---|---|
T | der Anfangswert für diese aufrufbare Variable |