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; |