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'appel.

Le mécanisme fonctionne de manière semblable à ThreadLocal. Ces variables diffèrent de leurs homologues normaux en ce sens que le code d'une invocation qui y accède (via sa méthode get) possède sa propre copie de la variable, initialisée indépendamment. Les instances InvocationLocal sont généralement des champs statiques privés dans les classes qui souhaitent associer un état à une invocation.

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 une invocation terminée, toutes ses copies d'instances locales d'invocation sont soumises à la collecte des déchets (sauf si d'autres références à ces copies existent).

Notez que contrairement aux instances ThreadLocal qui ne sont plus référencées pendant que l'appel est en cours, elles ne sont pas collectées. Il est donc déconseillé de créer des instances locales ou non statiques, car elles pourraient croître sans limite.

Avertissement: Utilisez cette classe avec parcimonie, car les variables locales d'appel sont des variables globales magnifiées qui présentent de nombreux écueils similaires.

Résumé

Constructeurs publics

InvocationLocal()

Méthodes publiques

final T get()

Renvoie la copie de cette variable locale d'appel de l'appel en cours d'exécution.

Méthodes protégées

T initialValue()

Renvoie la "valeur initiale" de l'appel actuel pour cette variable locale d'appel.

Constructeurs publics

InvocationLocal

public InvocationLocal ()

Méthodes publiques

get

public final T get ()

Renvoie la copie de cette variable locale d'appel de l'appel en cours d'exécution. Si la variable n'a aucune valeur pour l'appel en cours, elle est d'abord initialisée avec la valeur renvoyée par un appel à la méthode initialValue().

Renvoie
T Copie de cette invocation locale de l'appel en cours d'exécution.

Méthodes protégées

initialValue

protected T initialValue ()

Renvoie la "valeur initiale" de l'appel actuel pour cette variable locale d'appel. Cette méthode est appelée la première fois que le code exécuté dans le contexte de l'appel accède à la variable avec la méthode get(). Cette méthode est appelée au maximum une fois par appel.

Cette implémentation renvoie simplement null, mais elle peut être modifiée en sous-classant InvocationLocal et en remplaçant cette méthode.

Renvoie
T la valeur initiale de cette variable de portée d'appel