Modificato: ho bisogno di cambiare i valori di più variabili mentre corrono più volte attraverso un timer. Devo continuare ad aggiornare i valori con ogni iterazione tramite il timer. Non riesco a impostare i valori su final in quanto ciò mi impedirà di aggiornare i valori, tuttavia sto ricevendo l'errore che descrivo nella domanda iniziale di seguito:
In precedenza avevo scritto ciò che è sotto:
Ricevo l'errore "non posso fare riferimento a una variabile non finale all'interno di una classe interna definita in un metodo diverso".
Questo sta accadendo per il doppio chiamato price e il prezzo chiamato priceObject. Sai perché ho questo problema. Non capisco perché devo avere una dichiarazione finale. Inoltre, se riesci a vedere cosa sto cercando di fare, cosa devo fare per aggirare questo problema.
public static void main(String args[]) {
int period = 2000;
int delay = 2000;
double lastPrice = 0;
Price priceObject = new Price();
double price = 0;
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
price = priceObject.getNextPrice(lastPrice);
System.out.println();
lastPrice = price;
}
}, delay, period);
}