InvocationLocal

public class InvocationLocal
extends Object

java.lang.Объект
com.android.tradefed.invoker.logger.InvocationLocal<T>


Этот класс предоставляет переменные области вызова.

Механизм работает аналогично ERROR(/ThreadLocal) . Эти переменные отличаются от своих обычных аналогов тем, что код вызова, который обращается к одной из них (через метод get ), имеет свою собственную, независимо инициализированную копию переменной. Экземпляры InvocationLocal обычно представляют собой закрытые статические поля в классах, которые хотят связать состояние с вызовом.

Каждый вызов связан с копией переменной области вызова, пока вызов выполняется и доступен экземпляр InvocationLocal . После завершения вызова все его копии локальных экземпляров вызова подлежат сборке мусора (если не существуют другие ссылки на эти копии).

Обратите внимание, что в отличие от экземпляров ERROR(/ThreadLocal) , на которые больше не ссылаются во время выполнения вызова, сборка мусора не производится. Поэтому создавать локальные или нестатические экземпляры не рекомендуется, поскольку они могут неограниченно расти.

Предупреждение: используйте этот класс с осторожностью, поскольку локальные вызовы — это прославленные глобальные переменные со многими из тех же ловушек.

Краткое содержание

Публичные конструкторы

InvocationLocal ()

Публичные методы

final T get ()

Возвращает выполняющуюся в данный момент копию этой локальной переменной вызова.

Защищенные методы

T initialValue ()

Возвращает "начальное значение" текущего вызова для этой локальной переменной вызова.

Публичные конструкторы

InvocationLocal

public InvocationLocal ()

Публичные методы

получать

public final T get ()

Возвращает выполняющуюся в данный момент копию этой локальной переменной вызова. Если переменная не имеет значения для текущего вызова, она сначала инициализируется значением, возвращаемым вызовом метода initialValue() .

Возвращает
T текущая копия вызова этого вызова-local.

Защищенные методы

Начальное значение

protected T initialValue ()

Возвращает "начальное значение" текущего вызова для этой локальной переменной вызова. Этот метод будет вызываться в первый раз, когда код, выполняющийся в контексте вызова, получает доступ к переменной с помощью метода get() . Этот метод гарантированно вызывается не более одного раза за вызов.

Эта реализация просто возвращает null , но ее можно изменить, создав подкласс InvocationLocal и переопределив этот метод.

Возвращает
T начальное значение для этой переменной области вызова