Ich stöbere durch die Android-Quelle, nur eine Art zu lesen, und ich bin auf ein seltsames Stück Code in Android.Util.JsonReader
gestoßen. Es ist wie folgt:Peculiar Java Scope
private final List<JsonScope> stack = new ArrayList<JsonScope>();
{
push(JsonScope.EMPTY_DOCUMENT);
}
Was macht das genau? Das heißt, der Bereich unmittelbar nach der new
Zuweisung? Wenn ich richtig verstehe, wann immer diese Klasse, JsonReader
instanziiert wird, (nicht statisch, nicht wahr?), stack
wird hier initialisiert, anstatt über eine this.stack = ...
im Konstruktor, richtig?
Was macht dann der Umfang? Wird das ausgeführt, nachdem stack
initialisiert ist? Ich bin hier nur ein wenig verwirrt, was den Namen dieses Musters und seine Verwendung angeht.
ausgeführt Was es dann löst? Können sie mehrere sein, vermutlich nach verschiedenen Klassenfeldern? – Josh
Danke, das sind ein paar tolle Links. Eine Frage, warum erscheint sie unmittelbar nach diesem bestimmten Feld? Ist es nur spezifisch für diese Klasse? Es gibt ~ 6 Felder, die auf "stack" folgen, vor dem Klassenkonstruktor, und ungefähr dem gleichen Betrag davor. – Josh
Ich nehme an, es ist nur da, weil es das Stack-Feld über den Push-Aufruf manipuliert. –