我是一个Java新手,我试图通过部署递归函数斐波纳契线索,然后计算运行时间。 这里是我已成功地编写代码:“不能从静态上下文中引用非静态变量”?
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);
}
}
问题是,当我试图把它变成字节码,我得到以下错误:
nanoTime.java:11: non-static variable this cannot be referenced from a static context
我想知道问题是什么?!
您应该使用CamelCase作为类名......下次将其称为'NanoTime'。 – mellamokb
+1 @JB Nizet - 经常在你的例外情况下搜索,你得到的信息为你的问题提供了很好的结果和解决方案。对于初学者的问题(例如这个问题),这是真实的或者更难理解的问题 – Guillaume
类似于http://stackoverflow.com/questions/926822/java-non-static-variable-cannot-be-referenced-from-a-static -context-error –