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 |