final JTextField jtfContent = new JTextField();
btnOK.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent event){
jtfContent.setText("I am OK");
}
});
Si Omito final
, veo el error "no puede referirse a un jtfContent variable no definitiva dentro de una clase interna definida en un método diferente".¿Por qué las clases internas de Java requieren variables de instancia externas "finales"?
¿Por qué una clase interna anónima necesita que la variable de instancia de las clases externas sea definitiva para poder acceder a ella?
Observo que esta pregunta es anterior a la pregunta de la que se dice que es un duplicado. – Raedwald
@Raedwald según la meta-discusión respectiva, el tiempo de las preguntas realmente no importa: [Debería votar para cerrar una pregunta duplicada, a pesar de que es mucho más nueva ...] (http://meta.stackexchange.com/q/ 147643/165773) - _ "Si la nueva pregunta es una mejor pregunta o tiene mejores respuestas, vote para cerrar la anterior como un duplicado de la nueva ..." _ – gnat
alguien puede explicar por qué en Java 1.8 este código pasa ¿Compilacion? – Strin