Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从静态内容引用从文件加载_Java_Class_File Io_Static - Fatal编程技术网

Java 无法从静态内容引用从文件加载

Java 无法从静态内容引用从文件加载,java,class,file-io,static,Java,Class,File Io,Static,我不知道我的主课怎么了。我不知道如何改变它来修复它。计算机说:“从文件加载”不能从静态上下文引用。如果我试图改变它,我的主类就会丢失 public class Bsp3_1225814_3 { public void static main(String [] args){ List<Linienzug> lst = new ArrayList<>(); load_from_file("C:\\Users\\schurzm\\G

我不知道我的主课怎么了。我不知道如何改变它来修复它。计算机说:“从文件加载”不能从静态上下文引用。如果我试图改变它,我的主类就会丢失

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();
                }
            }
        }
公共类Bsp3_1225814_3{
公共void静态main(字符串[]args){
List lst=new ArrayList();
从文件(“C:\\Users\\schurzm\\Google Drive\\TU\\2.sement\\VU-Grundlagen Programmieren\\Projekte\u Schurz\\1225814\u 3\\3\u in”)加载;
转储到文件(“C:\\Users\\schurzm\\Google Drive\\TU\\2.sement\\VU Grundlagen Programmieren\\Projekte\u Schurz\\1225814\u 3\\3\u out”);
}
从_文件(字符串文件)加载_{
扫描器s=null;
试一试{
s=新扫描仪(
新的BufferedReader(新的文件读取器(文件)).useDelimiter(“\\n”);
而(s.hasNext()){
字符串[]in=s.next().split(“:”);
Linienzug l=新的Linienzug();

对于(int i=0;i当您在静态方法中时,不能调用没有
static
关键字的方法。这是因为存在对
This
指针的隐式引用,而该指针在静态上下文中不存在

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声明为类的成员。

您不能以这种方式从静态上下文调用实例方法。 您必须创建一个实例来调用它们

修理

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");

你能从你的示例中删除所有不相关的代码吗?你也可以将load_从_文件更改为静态。好吧,但现在他说,在load_从_文件中,该变量不能从静态上下文引用。你的整个设计需要返工。你应该使用“this”将被实例化的类中的变量,即存储数据和执行操作的类。静态方法用于(a)启动程序或(b)执行与上下文无关的操作的情况。