-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();
                }
            }
        }
4

3 回答 3

4

static当您在静态方法中时,您不能调用没有关键字的方法。这是因为this存在对静态上下文中不存在的指针的隐式引用。

于 2013-05-19T14:51:25.220 回答
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");
于 2013-05-19T15:04:12.220 回答
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 声明为您班级的成员。

于 2013-05-19T14:59:00.513 回答