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 a ThreadLocal
. Essas variáveis são diferentes das
versões normais em que o código em uma invocação que acessa uma (pelo método get
)
tem a própria cópia da variável inicializada de forma independente. 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 para o 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 executado no contexto da invocação acessar a variável com o método get()
. Esse método é invocado
no máximo uma vez por invocação.
Essa implementação simplesmente retorna null
, mas pode ser mudada com a subclasse InvocationLocal
e a substituição desse método.
Retorna | |
---|---|
T |
o valor inicial dessa variável no escopo de invocação |