InvocationLocal
public class InvocationLocal
extends Object
java.lang.Object | |
↳ | com.android.tradefed.invoker.logger.InvocationLocal<T> |
Diese Klasse stellt Aufrufbereichsvariablen bereit.
Der Mechanismus funktioniert ähnlich wie ERROR(/ThreadLocal)
. Diese Variablen unterscheiden sich von ihren normalen Gegenstücken darin, dass ein Aufruf, der auf einen zugreift (über seine get
Methode), eine eigene, unabhängig initialisierte Kopie der Variablen hat. InvocationLocal
Instanzen sind in der Regel private statische Felder in Klassen, die einen Zustand mit einem Aufruf verknüpfen möchten.
Jeder Aufruf ist einer Kopie einer aufrufbezogenen Variablen zugeordnet, solange der Aufruf ausgeführt wird und auf die InvocationLocal
Instanz zugegriffen werden kann. Nachdem ein Aufruf abgeschlossen ist, werden alle seine Kopien von aufruflokalen Instanzen der Garbage Collection unterzogen (sofern keine anderen Verweise auf diese Kopien vorhanden sind).
Beachten Sie, dass im Gegensatz zu ERROR(/ThreadLocal)
-Instanzen, auf die nicht mehr verwiesen wird, während der Aufruf noch läuft, keine Garbage Collection erfolgt. Das Erstellen lokaler oder nicht statischer Instanzen wird daher nicht empfohlen, da sie unbegrenzt wachsen könnten.
Warnung: Verwenden Sie diese Klasse sparsam, da Aufruflokale verherrlichte globale Variablen mit vielen der gleichen Fallstricke sind.
Zusammenfassung
Öffentliche Konstrukteure | |
---|---|
InvocationLocal () |
Öffentliche Methoden | |
---|---|
final T | get () Gibt die Kopie dieser invokationslokalen Variable des aktuell ausgeführten Aufrufs zurück. |
Geschützte Methoden | |
---|---|
T | initialValue () Gibt den "Anfangswert" des aktuellen Aufrufs für diese lokale Variable des Aufrufs zurück. |
Öffentliche Konstrukteure
InvocationLocal
public InvocationLocal ()
Öffentliche Methoden
erhalten
public final T get ()
Gibt die Kopie dieser invokationslokalen Variable 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 aktuell ausgeführte Kopie dieses Aufrufs – lokal. |
Geschützte Methoden
Ursprünglicher Wert
protected T initialValue ()
Gibt den "Anfangswert" des aktuellen Aufrufs für diese lokale Variable des Aufrufs zurück. Diese Methode wird aufgerufen, wenn der Code, der im Kontext des Aufrufs ausgeführt wird, 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 Unterklassen InvocationLocal
und Überschreiben dieser Methode geändert werden.
Kehrt zurück | |
---|---|
T | der Anfangswert für diese aufrufbezogene Variable |