InvocationLocal

public class InvocationLocal
extends Object

java.lang.Object
   ↳ com.android.tradefed.invoker.logger.InvocationLocal<T>


Ta klasa udostępnia zmienne o zakresie wywołania.

Mechanizm działa podobnie do funkcji ThreadLocal. Te zmienne różnią się od swoich normalnych odpowiedników w tym kodzie w wywołaniu, które uzyskuje dostęp do jednej z nich (za pomocą metody get) i ma własną, niezależnie zainicjowaną kopię zmiennej. Instancje InvocationLocal to zwykle prywatne pola statyczne w klasach, które chcą powiązać stan z wywołaniem.

Każde wywołanie jest powiązane z kopią zmiennej w zakresie wywołania, dopóki wywołanie jest w toku i dostępna jest instancja InvocationLocal. Po zakończeniu wywołania wszystkie jego kopie instancji lokalnych są przetwarzane do czyszczenia (chyba że istnieją inne odniesienia do tych kopii).

Pamiętaj, że w przeciwieństwie do ThreadLocal instancje, do których nie odwołuje się już wywołanie, gdy jest ono jeszcze w toku, nie są usuwane przez mechanizm garbage collection. Dlatego nie zalecamy tworzenia lokalnych lub niestatycznych instancji, ponieważ mogą one nieograniczenie się rozrastać.

Ostrzeżenie: używaj tej klasy z pomysłem, ponieważ zmienne lokalne są po prostu globalnymi zmiennymi z wielkimi wadami.

Podsumowanie

Konstruktory publiczne

InvocationLocal()

Metody publiczne

final T get()

Zwraca kopię tej zmiennej lokalnej wywołania, która jest obecnie wykonywana.

Chronione metody

T initialValue()

Zwraca „wartość początkową” bieżącego wywołania dla tej zmiennej lokalnej wywołania.

Konstruktory publiczne

InvocationLocal

public InvocationLocal ()

Metody publiczne

odbierz

public final T get ()

Zwraca kopię tej zmiennej lokalnej wywołania z bieżącego wywołania. Jeśli zmienna nie ma wartości w bieżącym wywołaniu, jest ona najpierw inicjowana wartością zwracaną przez wywołanie metody initialValue().

Zwroty
T kopia wywołania lokalnego bieżącego wywołania.

Chronione metody

initialValue

protected T initialValue ()

Zwraca „wartość początkową” bieżącego wywołania dla tej zmiennej lokalnej wywołania. Ta metoda zostanie wywołana po raz pierwszy, gdy kod wykonywany w kontekście wywołania uzyska dostęp do zmiennej za pomocą metody get(). Ta metoda zostanie wywołana co najwyżej raz na wywołanie.

Ta implementacja zwraca po prostu null, ale można ją zmienić, tworząc podklasę InvocationLocal i zastępując tę metodę.

Zwroty
T wartość początkowa tej zmiennej o zakresie na poziomie wywołania