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)执行与上下文无关的操作的情况。