Почему внутренние классы Java требуют «final ”Внешние переменные экземпляра? [дубликат]

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");
    }
} );

Если я опущу final , я увижу ошибку « Невозможно сослаться на не конечную переменную jtfContent внутри внутреннего класса, определенного в другом методе ".

Почему анонимный внутренний класс должен требовать, чтобы переменная экземпляра внешних классов была окончательной, чтобы получить к ней доступ?

51
задан bruno 15 October 2014 в 03:32
поделиться