InvocationLocal

public class InvocationLocal
extends Object

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


Ta klasa udostępnia zmienne zakresu wywołania.

Mechanizm działa podobnie jak 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. InvocationLocal to zazwyczaj prywatne statyczne pola 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 lokalne są usuwane (chyba że istnieją inne odwołania do tych kopii).

Pamiętaj, że w odróżnieniu od instancji 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 używana przez bieżące wywołanie.

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

Kup

public final T get ()

Zwraca kopię tej zmiennej lokalnej wywołania, która jest używana przez bieżące wywołanie. Jeśli zmienna nie ma wartości dla bieżącego wywołania, 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 początkowa wartość tej zmiennej o zakresie wywołania;