非静态方法open输入文件(String)不能从静态上下文java中引用

时间:2014-11-17 05:57:51

标签: java static

以下是我的问题代码:

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

没有什么是静态的,所以我不确定为什么我会收到此错误。有人可以帮忙吗?

2 个答案:

答案 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的对象并从该对象调用该方法。

答案 1 :(得分:0)

FileUtil类有一个方法openInputFile()似乎是非静态的,因此您必须通过创建FileUtil

的实例来调用它
FileUtil fileut= new FileUtil();
fileut.openInputFile();