InvocationLocal

public class InvocationLocal
extends Object

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


Questa classe fornisce variabili con ambito di chiamata.

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

Ogni invocazione è associata a una copia di una variabile con ambito di invocazione finché l'invocazione è in corso e l'istanza InvocationLocal è accessibile. Una volta completata un'invocazione, tutte le sue copie delle istanze locali dell'invocazione sono soggette alla garbage collection (a meno che non esistano altri riferimenti a queste copie).

Tieni presente che, a differenza delle istanze ThreadLocal a cui non viene più fatto riferimento mentre l'invocazione è ancora in corso, non vengono effettuate operazioni di Garbage Collection. Pertanto non è consigliabile creare istanze locali o non statiche poiché potrebbero crescere senza limiti.

Avvertenza: utilizzare questa classe con parsimonia poiché le chiamate locali 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

InvocationLocal

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 valore per l'invocazione corrente, viene prima inizializzata al 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" dell'invocazione corrente per questa variabile locale dell'invocazione. Questo metodo verrà invocato la prima volta che il codice in esecuzione nel contesto dell'invocazione accede alla variabile con il metodo get() . È garantito che questo metodo venga invocato al massimo una volta per invocazione.

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

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