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 | начальное значение для этой переменной области вызова |