无法弄清楚如何在不同的类中引用Scanner对象

时间:2013-10-03 01:35:47

标签: java

我无法让我的程序以交互方式运行。

在其中一个类中,System.in被更改为从文本文件中读取,如下所示:

public class mainClass
{
    public static void main(String[] args)
    {
      ...
        try {System.setIn(new java.io.FileInputStream("foo.txt"));} 
        catch (java.io.FileNotFoundException e) {}
        Scanner sc = new Scanner(System.in);

        someClass instance = new someClass(sc);
      ...
    }
}

我遇到的问题是我的另一堂课。我不知道如何调用点或引用同一个扫描仪。

编辑:

好吧所以我的班级接受扫描仪作为参数。有没有办法在以后的方法中调用该变量?

public someClass (Scanner sc)
{

}

public void test(String a)
{
   someClass.sc.nextLine();
}

当我尝试这样的事情时,我得到一个错误,说它无法找到变量sc。

1 个答案:

答案 0 :(得分:3)

除非将该引用传递给其他类或其某个实例,否则不能引用相同的Scanner对象。

Scanner sc = new Scanner(System.in);
SomeClass instance = new SomeClass(sc);

Scanner实例作为参数传递给SomeClass的构造函数。您可以将该引用保存在变量中,并在需要时重复使用它。