Mentre passa attraverso il codice libgdx sorgente per un Stage, ho incontrato questo segmento:Java riferimento locale su istanza variabile
public void draw() {
Camera camera = viewport.getCamera();
camera.update();
if (!root.isVisible()) return;
Batch batch = this.batch;
if (batch != null) {
batch.setProjectionMatrix(camera.combined);
batch.begin();
root.draw(batch, 1);
batch.end();
}
if (debug) drawDebug();
}
Quello che mi interessava era questa linea: Batch batch = this.batch;
La mia prima ipotesi è stata un miglioramento della memorizzazione nella cache. Ho ragione, o c'è un altro motivo per evitare di utilizzare direttamente la variabile di istanza?
Sei uscito con un debugger? A supposizione, forse qualcosa nel corpo se ricorre (e modifica il riferimento di esempio 'lotto'). –
Vedere anche ["evitare l'opcode getfield"] (http://stackoverflow.com/questions/4761681/avoiding-getfield-opcode). – Radiodef
Buoni pensieri, ma il riferimento di istanza batch non viene modificato tra i blocchi 'begin()' e 'end()' e questo metodo di disegno non è ricorsivo. – EntangledLoops