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