Почему я получаю это сообщение, когда пишу обработчик, а компилятор настаивает на том, чтобы сделать переменную финальной?
Cannot refer to a non-final variable inside an inner class defined in a different
method
Мой вопрос: как я могу определить не финальную переменную в моемкод: (как я могу изменить книгу, файл, заметку и время на нефинал) они являются глобальными переменными, и я передаю их в trakingNotes
public void trakingNotes (final double book, final long file, final String note, final double Time) {
MaxInfo = 100;
Timer updateTimer = new Timer("NoteSaveings");
updateTimer.scheduleAtFixedRate(new TimerTask() {
public void run() {
updateGUI( book, file, note, Time);
}
}, 0, 1000);
}
NotesDB dbnotes = new NotesDB(this);
private void updateGUI( final double book, final long file, final String note, final double Time) {
long idy;
// Update the GUI
noteHandler.post(new Runnable() {
public void run() {
long idy;
dbnotes.open();
idy= dbnotes.insertnoteTitle (book, file, note, Time);
if ((book) == samebook )//samebook is a global varible
{ReadDBnotes();}
dbnote.close();
});}