Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

InvocationLocal

public class InvocationLocal
extends Object

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


Questa classe fornisce variabili nell'ambito della chiamata.

Il meccanismo funziona in modo simile a ThreadLocal . Queste variabili differiscono dalle loro controparti normali in quel codice in una chiamata che accede a una (tramite il suo metodo get ) ha una propria copia della variabile inizializzata in modo indipendente. Le istanze di InvocationLocal sono in genere campi statici privati ​​nelle classi che desiderano associare lo stato a un'invocazione.

Ogni chiamata è associata a una copia di una variabile con ambito di chiamata, purché la chiamata sia in corso e l'istanza di InvocationLocal sia accessibile. Dopo che un'invocazione è stata completata, tutte le sue copie delle istanze invocation-local sono soggette a Garbage Collection (a meno che non esistano altri riferimenti a queste copie).

Si noti che, a differenza delle istanze ThreadLocal a cui non viene più fatto riferimento mentre la chiamata è ancora in corso, non vengono raccolte dati inutili. La creazione di istanze locali o non statiche non è quindi consigliata in quanto potrebbero crescere senza limiti.

Avvertenza: usa questa classe con parsimonia poiché i locali di chiamata sono variabili globali glorificate con molte delle stesse insidie.

Riepilogo

Costruttori pubblici

InvocationLocal ()

Metodi pubblici

final T get ()

Restituisce la copia della chiamata attualmente in esecuzione di questa variabile locale di chiamata.

Metodi protetti

T initialValue ()

Restituisce il "valore iniziale" della chiamata corrente per questa variabile locale di chiamata.

Costruttori pubblici

InvocationLocal

public InvocationLocal ()

Metodi pubblici

ottenere

public final T get ()

Restituisce la copia della chiamata attualmente in esecuzione di questa variabile locale di chiamata. Se la variabile non ha alcun valore per la chiamata corrente, viene prima inizializzata sul valore restituito da una chiamata al metodo initialValue() .

ritorna
T la copia dell'invocazione attualmente in esecuzione di questo locale di invocazione.

Metodi protetti

valore iniziale

protected T initialValue ()

Restituisce il "valore iniziale" della chiamata corrente per questa variabile locale di chiamata. Questo metodo verrà invocato la prima volta che il codice in esecuzione nel contesto della chiamata accede alla variabile con il metodo get() . Questo metodo è garantito per essere invocato al massimo una volta per chiamata.

Questa implementazione restituisce semplicemente null ma può essere modificata assegnando una sottoclasse a InvocationLocal ed eseguendo l'override di questo metodo.

ritorna
T il valore iniziale per questa variabile con ambito di chiamata