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 |