InvocationLocal
public class InvocationLocal
extends Object
java.lang.Object | |
↳ | com.android.tradefed.invoker.logger.InvocationLocal<T> |
Cette classe fournit des variables de portée d'invocation.
Le mécanisme fonctionne de manière similaire à ThreadLocal
. Ces variables diffèrent de leurs homologues normaux dans ce code dans une invocation qui y accède (via sa méthode get
) a sa propre copie indépendamment initialisée de la variable. Les instances InvocationLocal
sont généralement des champs statiques privés dans des classes qui souhaitent associer un état à un appel.
Chaque appel est associé à une copie d'une variable de portée d'appel tant que l'appel est en cours et que l'instance InvocationLocal
est accessible. Une fois qu'un appel est terminé, toutes ses copies d'instances locales d'appel sont soumises à la récupération de place (à moins qu'il n'existe d'autres références à ces copies).
Notez que contrairement aux instances ThreadLocal
qui ne sont plus référencées alors que l'invocation est toujours en cours, elles ne sont pas ramassées. La création d'instances locales ou non statiques n'est donc pas recommandée car elles pourraient croître sans limite.
Avertissement : Utilisez cette classe avec parcimonie car les variables locales d'invocation sont des variables globales glorifiées avec bon nombre des mêmes pièges.
Résumé
Constructeurs publics | |
---|---|
InvocationLocal () |
Méthodes publiques | |
---|---|
final T | get () Renvoie la copie de l'invocation en cours d'exécution de cette variable locale d'invocation. |
Méthodes protégées | |
---|---|
T | initialValue () Renvoie la "valeur initiale" de l'invocation actuelle pour cette variable locale d'invocation. |
Constructeurs publics
InvocationLocal
public InvocationLocal ()
Méthodes publiques
obtenir
public final T get ()
Renvoie la copie de l'invocation en cours d'exécution de cette variable locale d'invocation. Si la variable n'a pas de valeur pour l'invocation en cours, elle est d'abord initialisée à la valeur renvoyée par un appel à la méthode initialValue()
.
Retour | |
---|---|
T | la copie de l'invocation en cours d'exécution de cette invocation-local. |
Méthodes protégées
valeur initiale
protected T initialValue ()
Renvoie la "valeur initiale" de l'invocation actuelle pour cette variable locale d'invocation. Cette méthode sera invoquée la première fois que le code s'exécutant dans le contexte de l'invocation accède à la variable avec la méthode get()
. Cette méthode est garantie d'être invoquée au plus une fois par invocation.
Cette implémentation renvoie simplement null
mais peut être modifiée en sous-classant InvocationLocal
et en remplaçant cette méthode.
Retour | |
---|---|
T | la valeur initiale de cette variable de portée d'invocation |