Duplicar posible:
Why inner classes require “final” outer instance variables [Java]?
Why are only final variables accessible in anonymous class?Método La clase interna local solo puede acceder a la variable local final.¿Por qué?
class Outer{
private String x = "instance variable";
void doStuff(){
String z = "local variable";
class Inner{
public void seeOuter(){
System.out.println("Outer x is : "+ x);
System.out.println("Local variable z is : " + z); //won't compile
}
}
}
}
Marcado del z variable local como correcciones finales del problema:
final String z = "local variable"; //Now inner object can use it.
¿Alguien puede explicar lo que está sucediendo?
Sé exactamente por qué no se puede compilar en caso de que intente acceder a una variable local no final.
¿La finalización de una variable local le permite mantenerse con vida incluso si el método se completa y la variable local queda fuera del alcance?
¿Las variables locales finales se almacenan en un montón en lugar de la pila?
: pero la pregunta aquí es ¿por qué marcar una variable de método local final la hace accesible? – Anu11
@ Anu11 Leería el último párrafo nuevamente. ;) –