InvocazioneLocal

public class InvocationLocal
extends Object

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


Questa classe fornisce variabili di ambito di chiamata.

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

Ogni chiamata è associata a una copia di una variabile con ambito di chiamata finché la chiamata è in corso e l'istanza InvocationLocal è 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 di ThreadLocal le istanze a cui non si fa più riferimento mentre la chiamata è ancora in corso non vengono raccolte in modo indesiderato. La creazione di istanze locali o non statiche non è pertanto consigliata in quanto potrebbero crescere senza limiti.

Avvertenza: utilizzare 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 dell'invocazione attualmente in esecuzione di questa variabile locale dell'invocazione.

Metodi protetti

T initialValue ()

Restituisce il "valore iniziale" dell'invocazione corrente per questa variabile locale dell'invocazione.

Costruttori pubblici

InvocazioneLocal

public InvocationLocal ()

Metodi pubblici

Ottenere

public final T get ()

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

ritorna
T la copia dell'invocazione attualmente in esecuzione di questo invocation-local.

Metodi protetti

valore iniziale

protected T initialValue ()

Restituisce il "valore iniziale" dell'invocazione corrente per questa variabile locale dell'invocazione. Questo metodo verrà richiamato la prima volta che il codice in esecuzione nel contesto dell'invocazione accede alla variabile con il metodo get() . È garantito che questo metodo venga richiamato al massimo una volta per chiamata.

Questa implementazione restituisce semplicemente null ma può essere modificata eseguendo la sottoclasse InvocationLocal e sovrascrivendo questo metodo.

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