在Java中跨多个类使用扫描程序?

时间:2014-02-19 17:29:38

标签: java class

我有一个Java程序,需要在多个类的多个点从控制台获取用户输入。我尝试在每个类中使用扫描仪但是当我关闭一个扫描仪时它会关闭system.in所以我想在整个程序中使用相同的扫描仪。我在主类中打开扫描仪,但如何在其他类中使用相同的扫描仪?

2 个答案:

答案 0 :(得分:2)

您必须通过构造函数将scanner实例注入其他类。如下所示:

import java.util.*;

public class Test1
{
    private Scanner _scanner;

    public Test1(Scanner sc)
    {
        _scanner = sc;
    }
}

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        Test1 testObj = new Test1(sc);
    }
}

答案 1 :(得分:0)

import java.util.Scanner;

public class ScannerSaver 
{
    private Scanner scan;

    public ScannerSaver(Scanner s)
    {
        this.scan = s;
    }
}

只需将扫描仪作为参数传递。