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 Gegenstücken darin, dass Code in einem Aufruf, der (über die Methode get) auf eine Variable zugreift, eine eigene, unabhängig initialisierte Kopie der Variable hat. InvocationLocal-Instanzen sind in der Regel private statische Felder in Klassen, die einen Status mit einer Aufrufung verknüpfen möchten.

Jeder Aufruf ist einer Kopie einer aufrufbezogenen Variablen zugeordnet, solange der Aufruf läuft und die Instanz InvocationLocal zugänglich ist. Nach Abschluss einer Aufrufsausführung 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 lokalen Aufrufvariablen zurück.

Geschützte Methoden

T initialValue()

Gibt den Anfangswert des aktuellen Aufrufs für diese lokale Aufrufvariable zurück.

Öffentliche Konstruktoren

InvocationLocal

public InvocationLocal ()

Öffentliche Methoden

get

public final T get ()

Gibt die Kopie dieser aufruflokalen Variablen der aktuell ausgeführten Aufrufs zurück. Wenn die Variable für den aktuellen Aufruf 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 den Aufruf geltende Variable zurück. Diese Methode wird aufgerufen, wenn Code, der im Kontext des Aufrufs zum ersten Mal ausgeführt wird, mit der Methode get() auf die Variable zugreift. Diese Methode wird garantiert höchstens 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 aufrufbezogene Variable