我有一个Java程序,需要在多个类的多个点从控制台获取用户输入。我尝试在每个类中使用扫描仪但是当我关闭一个扫描仪时它会关闭system.in所以我想在整个程序中使用相同的扫描仪。我在主类中打开扫描仪,但如何在其他类中使用相同的扫描仪?
答案 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;
}
}
只需将扫描仪作为参数传递。