Sto navigando attraverso la sorgente Android, solo tipo di lettura, e mi sono imbattuto in una strana porzione di codice in Android.Util.JsonReader
. E 'come segue:Scope Java peculiare
private final List<JsonScope> stack = new ArrayList<JsonScope>();
{
push(JsonScope.EMPTY_DOCUMENT);
}
Cos'è questo fare esattamente? Cioè, l'ambito immediatamente successivo all'assegnazione new
? Se capisco correttamente, ogni volta che questa classe, JsonReader
viene istanziata, (non statica, vero?), stack
verrà inizializzato qui, piuttosto che tramite un this.stack = ...
nel costruttore, corretto?
Che cosa fa allora l'ambito? È eseguito dopo lo stack
viene inizializzato? Sono solo un po 'confuso qui, per quanto riguarda il nome di questo modello e il suo uso.
Che poi fa scattare? Possono essere più diversi, presumibilmente dopo diversi campi di classe? – Josh
Grazie, questi sono ottimi collegamenti. Una domanda però, perché appare subito dopo quel particolare campo? E 'solo specifico per questa classe? Ci sono ~ 6 campi che seguono 'stack', prima del costruttore della classe, e circa della stessa quantità che lo precede. – Josh
Suppongo che sia lì solo perché manipola il campo dello stack tramite la chiamata push. –