2013-05-19 17 views
-2

我不知道我的主類有什麼問題。我不知道如何改變它來修復它。計算機說:從文件加載不能從靜態上下文中引用。如果我試圖改變它,我的主要課程缺失。從文件加載不能從靜態內容引用

public class Bsp3_1225814_3 { 

    public void static main(String [] args){ 
     List<Linienzug> lst = new ArrayList<>(); 

     load_from_file("C:\\Users\\schurzm\\Google Drive\\TU\\2.Semester\\VU_Grundlagen Programmieren\\Projekte_Schurz\\1225814_3\\3_in"); 
     dump_to_file("C:\\Users\\schurzm\\Google Drive\\TU\\2.Semester\\VU_Grundlagen Programmieren\\Projekte_Schurz\\1225814_3\\3_out"); 
    } 

    public void load_from_file(String file) { 
     Scanner s = null; 
     try { 
      s = new Scanner(
       new BufferedReader(new FileReader(file))).useDelimiter("\\n"); 
       while (s.hasNext()) { 
        String[] in = s.next().split(":"); 
        Linienzug l = new Linienzug(); 
        for (int i=0; i<(in.length-1); i++){ 
         l.add(new Punkt(Integer.parseInt(in[i]), 
         Integer.parseInt(in[i+1]))); 
        } 
        this.lst.add(l); 
       } 
      } catch (FileNotFoundException ex) { 
       System.out.print("File not found"); 
      } finally { 
       if (s != null) { 
        s.close(); 
       } 
      } 
     } 
+1

能否請您從您的例子刪除所有無關的代碼? –

回答

4

當您處於靜態方法中時,您無法調用沒有static關鍵字的方法。這是因爲有一個對靜態上下文中不存在的this指針的隱式引用。

+0

對,但如何解決它? –

+0

您也可以將load_from_file更改爲靜態。 –

+0

好吧,但現在他說,在load_from_file中,該變量不能從靜態上下文中引用。 –

0
public void static main(String [] args){ 
Bsp3_1225814_3 myObj = new Bsp3_1225814_3(); 
myObj.load_from_file("C:\\Users\\schurzm\\Google Drive\\TU\\2.Semester\\VU_Grundlagen 
... 
} 

並聲明lst爲您班級的成員。

2

您不能以這種方式從靜態上下文中調用實例方法。 您必須創建一個實例來調用它們。

修復...

Bsp3_1225814_3 bsp3 = new Bsp3_1225814_3(); 
bsp3.load_from_file("C:\\Users\\schurzm\\Google Drive\\TU\\2.Semester\\VU_Grundlagen Programmieren\\Projekte_Schurz\\1225814_3\\3_in"); 
bsp3.dump_to_file("C:\\Users\\schurzm\\Google Drive\\TU\\2.Semester\\VU_Grundlagen Programmieren\\Projekte_Schurz\\1225814_3\\3_out"); 
相關問題