2014-11-17 41 views
-1

這裏是我的代碼有問題:非靜態方法openInputFile(字符串)不能從靜態CONTEX的Java引用

public File openInputFile(Scanner kb) 
{ 
    if(kb == null) 
    { 
    throw new RuntimeException("ERROR! Scanner Not Detected."); 
    } 
    System.out.print("Enter Name of File: "); 
    String fn = kb.nextLine(); 
    File inf = FileUtil.openInputFile(fn); 
    return inf; 
} 

我收到以下錯誤:

FileUtil.java:33: error: non-static method openInputFile(String) cannot be referenced from a static context 
     File inf = FileUtil.openInputFile(fn); 
         ^

沒有什麼靜態,所以我不知道爲什麼我得到這個錯誤。誰能幫忙?

+0

你用它告訴編譯器它是靜態的方式實例來調用它。 –

+0

你能詳細說一下嗎? – user210394

+0

當方法是靜態時,你會像使用類名一樣使用它。方法的名稱 –

回答

0

File inf = FileUtil.openInputFile(fn); 告訴編譯器openInputFile(fn)是類FileUtil的靜態方法,因爲您試圖從類名稱本身調用該方法。這就是爲什麼說編譯

FileUtil.java:33: error: non-static method openInputFile(String) cannot be referenced from a static context

因此,所有你需要做的是,使文件UTIL的對象,並調用來自該對象的方法。

+0

op使用方法openInputFile內的openInputFile方法 –

+0

參數類型不同。 FileUtil方法接受的字符串,而運算的方法有一個類型的參數「Scanner' – guptakvgaurav

0

FileUtil類有一個方法openInputFile(),這似乎是無靜電,因此你必須通過創建FileUtil

FileUtil fileut= new FileUtil(); 
fileut.openInputFile(); 
+0

運算使用openInputFile方法的方法openInputFile –

+0

是內部的,但這些方法似乎被覆蓋,因爲他們有不同的PARAMS –

+0

但它聽起來有點混亂,不表達什麼程序員試圖在這裏完成? –

相關問題