Soy un principiante de Java y estoy tratando de implementar un camino de Fibonacci a través de la función recursiva y luego calcular el tiempo de ejecución. Este es el código que he conseguido escribir:"variable no estática, esto no se puede hacer referencia desde un contexto estático"?
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);
}
}
El problema es cuando estoy tratando de convertirlo en código byte-me sale el siguiente error:
nanoTime.java:11: non-static variable this cannot be referenced from a static context
Me pregunto ¡¿Cuál es el problema?!
Debe usar CamelCase para nombres de clase ... llámalo 'NanoTime' la próxima vez. – mellamokb
+1 @JB Nizet: muy a menudo buscando su excepción en Google y el mensaje que recibe le da un buen resultado y una solución a su problema. Esto es cierto para las preguntas de los principiantes (como esta) o para los problemas más oscuros – Guillaume
Similar a http://stackoverflow.com/questions/926822/java-non-static-variable-cannot-be-referenced-f- de-static -context-error –