ВызовЛокальный
public class InvocationLocal
extends Object
| java.lang.Объект | |
| ↳ | com.android.tradefed.invoker.logger.IndictionLocal<T> |
Этот класс предоставляет переменные области вызова.
Механизм работает аналогично ThreadLocal . Эти переменные отличаются от своих обычных аналогов тем, что код, обращающийся к одной из них (через метод get ), имеет собственную, независимо инициализированную копию переменной. Экземпляры InvocationLocal обычно представляют собой частные статические поля в классах, которые хотят связать состояние с вызовом.
Каждый вызов связан с копией переменной области вызова, пока вызов выполняется и экземпляр InvocationLocal доступен. После завершения вызова все его копии локальных экземпляров вызова подлежат сборке мусора (если не существуют другие ссылки на эти копии).
Обратите внимание: в отличие от экземпляров ThreadLocal , на которые больше не ссылаются во время выполнения вызова, сбор мусора не производится. Поэтому создание локальных или нестатических экземпляров не рекомендуется, поскольку они могут неограниченно расти.
Предупреждение. Используйте этот класс с осторожностью, поскольку локальные вызовы — это прославленные глобальные переменные со многими из тех же ловушек.
Краткое содержание
Общественные конструкторы | |
|---|---|
InvocationLocal () | |
Публичные методы | |
|---|---|
final T | get ()Возвращает копию локальной переменной вызова при текущем вызове. |
Защищенные методы | |
|---|---|
T | initialValue ()Возвращает «начальное значение» текущего вызова для этой локальной переменной вызова. |
Общественные конструкторы
ВызовЛокальный
public InvocationLocal ()
Публичные методы
получать
public final T get ()
Возвращает копию локальной переменной вызова при текущем вызове. Если переменная не имеет значения для текущего вызова, она сначала инициализируется значением, возвращаемым вызовом метода initialValue() .
| Возврат | |
|---|---|
T | копия текущего вызова этого локального вызова. |
Защищенные методы
начальное значение
protected T initialValue ()
Возвращает «начальное значение» текущего вызова для этой локальной переменной вызова. Этот метод будет вызван в первый раз, когда код, выполняющийся в контексте вызова, обращается к переменной с помощью метода get() . Этот метод гарантированно будет вызываться не более одного раза за один вызов.
Эта реализация просто возвращает null , но его можно изменить, создав подкласс InvocationLocal и переопределив этот метод.
| Возврат | |
|---|---|
T | начальное значение для этой переменной области вызова |