java java-8 local-class

La clase local puede acceder a la variable no final en java 8



java-8 local-class (1)

La situación no ha cambiado en absoluto, en realidad. El compilador es un poco más inteligente y ya no te obliga a usar la palabra clave final.

Si detecta que la variable es efectivamente final, es decir, asignada solo una vez, y nunca después, todo es bueno. Si detecta que no es efectivamente final, se niega a compilar.

Entonces, en lugar de obligarte a hacer una variable final, la detecta automáticamente. Pero aún no puedes usar variables finales no efectivas dentro de una clase interna o lambda.

Antes de Java 8, no podíamos usar variables no finales dentro de la clase local. Pero ahora están permitiendo tanto la final como la final (los valores de quién no se han cambiado), pueden ser referidos por las clases locales. Lo que sé (corríjame si estoy equivocado), no admitieron la referencia de valores no finales porque los valores pueden cambiarse. Entonces, ¿cómo lo están apoyando ahora y por qué no lo fueron antes?