我是一個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 –