Appel local

public class InvocationLocal
extends Object

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


Cette classe fournit des variables dont la portée est définie au niveau de l'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 à l'échelle de l'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. La création d'instances locales ou non statiques n'est donc pas recommandée, car elles pourraient croître sans limites.

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 l'appel en cours d'exécution de cette variable d'appel locale. 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 d'appel locale. 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 ne peut être appelée qu'une seule 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