WywołanieLokalne
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 do ThreadLocal
. Zmienne te różnią się od swoich normalnych odpowiedników w tym kodzie w wywołaniu, które uzyskuje dostęp (poprzez jego metodę get
) ma własną, niezależnie zainicjowaną kopię zmiennej. Instancje InvocationLocal
to zazwyczaj prywatne pola statyczne w klasach, które chcą skojarzyć stan z wywołaniem.
Każde wywołanie jest skojarzone z kopią zmiennej o zasięgu wywołania, o ile trwa wywołanie, a wystąpienie InvocationLocal
jest dostępne. Po zakończeniu wywołania wszystkie jego kopie lokalnych instancji wywołania podlegają wyrzucaniu elementów bezużytecznych (chyba że istnieją inne odniesienia do tych kopii).
Należy zauważyć, że w przeciwieństwie do wystąpień ThreadLocal
, do których nie ma już odwołań, gdy wywołanie jest nadal w toku, nie są zbierane elementy bezużyteczne. Dlatego nie zaleca się tworzenia lokalnych lub niestatycznych instancji, ponieważ mogą one rosnąć bez ograniczeń.
Ostrzeżenie: używaj tej klasy oszczędnie, ponieważ wywołania lokalne są gloryfikowanymi zmiennymi globalnymi z wieloma takimi samymi pułapkami.
Streszczenie
Konstruktorzy publiczni | |
---|---|
InvocationLocal () |
Metody publiczne | |
---|---|
final T | get () Zwraca kopię aktualnie wykonywanego wywołania tej zmiennej lokalnej wywołania. |
Metody chronione | |
---|---|
T | initialValue () Zwraca „wartość początkową” bieżącego wywołania dla tej zmiennej lokalnej wywołania. |
Konstruktorzy publiczni
WywołanieLokalne
public InvocationLocal ()
Metody publiczne
Dostawać
public final T get ()
Zwraca kopię aktualnie wykonywanego wywołania tej zmiennej lokalnej wywołania. Jeśli zmienna nie ma wartości dla bieżącego wywołania, jest najpierw inicjowana wartością zwróconą przez wywołanie metody initialValue()
.
Zwroty | |
---|---|
T | aktualnie wykonywana kopia wywołania lokalnego. |
Metody chronione
wartość początkowa
protected T initialValue ()
Zwraca „wartość początkową” bieżącego wywołania dla tej zmiennej lokalnej wywołania. Ta metoda zostanie wywołana, gdy kod wykonywany w kontekście wywołania po raz pierwszy uzyskuje dostęp do zmiennej za pomocą metody get()
. Gwarantuje się, że ta metoda zostanie wywołana co najwyżej raz na wywołanie.
Ta implementacja po prostu zwraca null
, ale można ją zmienić, tworząc podklasę InvocationLocal
i zastępując tę metodę.
Zwroty | |
---|---|
T | wartość początkowa tej zmiennej o zasięgu wywołania |