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 un'invocazione.
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: utilizza questa classe con parsimonia, poiché le variabili locali di chiamata sono variabili globali glorificate con molti degli stessi problemi.
Riepilogo
Costruttori pubblici | |
---|---|
InvocationLocal()
|
Metodi pubblici | |
---|---|
final
T
|
get()
Restituisce la copia di questa variabile locale di chiamata dell'invocazione attualmente in esecuzione. |
Metodi protetti | |
---|---|
T
|
initialValue()
Restituisce il "valore iniziale" dell'invocazione corrente per questa variabile locale dell'invocazione. |
Costruttori pubblici
InvocationLocal
public InvocationLocal ()
Metodi pubblici
Ottieni
public final T get ()
Restituisce la copia di questa variabile locale di chiamata dell'invocazione attualmente in esecuzione. Se la variabile non ha un valore per l'invocazione corrente, viene inizialmente inizializzata con il 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à invocato la prima volta che il codice in esecuzione nel contesto dell'invocazione 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 |