InvocationLocal

public class InvocationLocal
extends Object

java.lang.Object
   ↳ com.android.tradefed.invoker.logger.InvocationLocal<T>


Essa classe fornece variáveis de escopo de invocação.

O mecanismo funciona de maneira semelhante ao ThreadLocal. Essas variáveis são diferentes das versões normais nesse código em uma invocação que acessa uma (pelo método get) e tem a própria cópia inicializada de forma independente da variável. As instâncias de InvocationLocal são geralmente campos estáticos privados em classes que querem associar o estado a uma invocação.

Cada invocação é associada a uma cópia de uma variável no escopo da invocação, desde que a invocação esteja em andamento e a instância InvocationLocal seja acessível. Depois que uma invocação é concluída, todas as cópias de instâncias locais de invocação estão sujeitas à coleta de lixo, a menos que outras referências a essas cópias existam.

Ao contrário das instâncias de ThreadLocal que não são mais referenciadas enquanto a invocação ainda está em andamento, não há coleta de lixo. A criação de instâncias locais ou não estáticas não é recomendada, porque elas podem crescer sem limites.

Aviso: use essa classe com moderação, porque as variáveis locais de invocação são variáveis globais glorificadas com muitas das mesmas armadilhas.

Resumo

Construtores públicos

InvocationLocal()

Métodos públicos

final T get()

Retorna a cópia da invocação em execução dessa variável local de invocação.

Métodos protegidos

T initialValue()

Retorna o "valor inicial" da invocação atual para essa variável local de invocação.

Construtores públicos

InvocationLocal

public InvocationLocal ()

Métodos públicos

get

public final T get ()

Retorna a cópia da invocação em execução dessa variável local de invocação. Se a variável não tiver um valor para a invocação atual, ela será inicializada primeiro com o valor retornado por uma chamada ao método initialValue().

Retorna
T a cópia da invocação em execução desse local de invocação.

Métodos protegidos

initialValue

protected T initialValue ()

Retorna o "valor inicial" da invocação atual para essa variável local de invocação. Esse método será invocado na primeira vez que o código for executado no contexto da invocação e acessar a variável com o método get(). Esse método será invocado no máximo uma vez por invocação.

Essa implementação simplesmente retorna null, mas pode ser modificada criando uma subclasse de InvocationLocal e substituindo esse método.

Retorna
T o valor inicial dessa variável no escopo da invocação