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 controparti normali in quanto il codice in un'invocazione che accede a una (tramite il relativo metodo get
) ha una propria copia della variabile inizializzata in modo indipendente. Le istanze InvocationLocal
sono in genere campi statici privati nelle classi che vogliono associare lo stato a una chiamata.
Ogni chiamata è associata a una copia di una variabile basata sulle chiamate finché la chiamata è in corso e l'istanza InvocationLocal
è accessibile. Al termine di un'invocazione, tutte le copie delle istanze locali di chiamata sono soggette alla raccolta del garbage (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 viene eseguita la raccolta dei rifiuti. Pertanto, la creazione di istanze locali o non statiche non è consigliata in quanto potrebbero crescere senza limiti.
Avviso: usa questa classe con parsimonia, perché le chiamate locali sono esaltate le variabili globali 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" dell'invocazione corrente per questa variabile locale dell'invocazione. |
Costruttori pubblici
InvocationLocal
public InvocationLocal ()
Metodi pubblici
ricevi
public final T get ()
Restituisce la copia di questa variabile locale dell'invocazione dell'invocazione attualmente in esecuzione. Se la variabile non ha valori per la chiamata corrente, viene prima inizializzata nel valore restituito da una chiamata al metodo initialValue()
.
Ritorni | |
---|---|
T |
la copia di questo parametro locale dell'invocazione in esecuzione. |
Metodi protetti
initialValue
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 della chiamata accede alla variabile con il metodo get()
. Viene garantito che questo metodo venga invocato al massimo una volta per chiamata.
Questa implementazione restituisce semplicemente null
, ma può essere modificata creando una sottoclasse di InvocationLocal
e sostituendo questo metodo.
Ritorni | |
---|---|
T |
il valore iniziale per questa variabile basata sulle chiamate |