Invocação Local
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 opera de forma semelhante ao ThreadLocal
. Essas variáveis diferem de suas contrapartes normais em que o código em uma invocação que acessa uma (através de seu método get
) tem sua própria cópia inicializada independentemente da variável. As instâncias InvocationLocal
são tipicamente campos estáticos privados em classes que desejam associar o estado a uma invocação.
Cada invocação está associada a uma cópia de uma variável com escopo de invocação, desde que a invocação esteja em andamento e a instância InvocationLocal
esteja acessível. Após a conclusão de uma invocação, todas as suas cópias de instâncias locais de invocação estão sujeitas à coleta de lixo (a menos que existam outras referências a essas cópias).
Observe que, diferentemente das instâncias ThreadLocal
, que não são mais referenciadas enquanto a invocação ainda está em andamento, não são coletadas como lixo. A criação de instâncias locais ou não estáticas, portanto, não é recomendada, pois elas podem crescer sem limites.
Aviso: use esta classe com moderação, pois os 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 atualmente em execução desta variável local de invocação. |
Métodos protegidos | |
---|---|
T | initialValue () Retorna o "valor inicial" da invocação atual para esta variável local de invocação. |
Construtores públicos
Invocação Local
public InvocationLocal ()
Métodos públicos
pegar
public final T get ()
Retorna a cópia da invocação atualmente em execução desta variável local de invocação. Se a variável não tiver valor para a invocação atual, ela será primeiro inicializada com o valor retornado por uma chamada ao método initialValue()
.
devoluções | |
---|---|
T | a cópia da invocação atualmente em execução desta invocação-local. |
Métodos protegidos
valor inicial
protected T initialValue ()
Retorna o "valor inicial" da invocação atual para esta variável local de invocação. Este método será invocado na primeira vez que o código executado no contexto da invocação acessa a variável com o método get()
. Este método é garantido para ser invocado no máximo uma vez por invocação.
Essa implementação simplesmente retorna null
, mas pode ser alterada pela subclasse InvocationLocal
e substituindo esse método.
devoluções | |
---|---|
T | o valor inicial para esta variável com escopo de invocação |