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 |