Sono un principiante Java e sto provando a distribuire un percorso di Fibonacci attraverso la funzione ricorsiva e quindi calcolare il tempo di esecuzione. ecco il codice sono riuscito a scrivere:"variabile non statica non può essere referenziata da un contesto statico"?
class nanoTime{
int fib(int n){
if(n==0) return 0;
if(n==1) return 1;
return this.fib(n-1)+this.fib(n-2);
}
public static void main(String[] args){
double beginTime,endTime,runTime;
int n=10;
beginTime = System.nanoTime();
n = this.fib(n);
endTime = System.nanoTime();
runTime = endTime-beginTime;
System.out.println("Run Time:" + runTime);
}
}
Il problema è quando sto cercando di trasformarlo in byte-code ottengo il seguente errore:
nanoTime.java:11: non-static variable this cannot be referenced from a static context
mi chiedo qual è il problema?!
Dovresti usare CamelCase per i nomi delle classi ... chiamalo 'NanoTime' la prossima volta. – mellamokb
+1 @JB Nizet - molto spesso googling per la tua eccezione e il messaggio che ricevi ti dà un buon risultato e una soluzione per il tuo problema. Questo è vero per le domande dei principianti (come questo) o per altri problemi oscuri – Guillaume
Simile a http://stackoverflow.com/questions/926822/java-non-static-variable-cannot-be-referenced-from-a-static -context-error –