首页 > 解决方案 > 如何跨多个班级使用扫描仪?

问题描述

如何user_input跨多个班级使用我的扫描仪?我已经阅读了几篇文章,但显然我遗漏了一些东西。我什至尝试了其他一些stackoverflow问题,结果如下:

import java.util.Scanner;

public class HelloWorld{
    public static final Scanner user_input = new Scanner(System.in);

    public static void main(String []args){
        String test1 = user_input.next();
        System.out.println("Test 1: " + test1);
    }
}

class TestClass{
    public static void test_method(){
        String test2 = HelloWord.user_input.next();
        System.out.println("Test 2: " + test2);
    }
}

如果有人可以帮助我,我将不胜感激。

PS我是Java新手,有Python背景。

标签: javaclassjava.util.scanner

解决方案


从@ferdz 评论,这样的事情会更好:

import java.util.Scanner;

public class HelloWorld {
    public static final Scanner user_input = new Scanner(System.in);

    public static void main(String[] args) {
        String test1 = user_input.next();
        System.out.println("Test 1: " + test1);

        // These two lines actually instantiate the TestClass below,
        // we pass in the Scanner as a parameter (user_input), and 
        // then it gets used in the test_method internally.
        TestClass testClass = new TestClass(user_input);
        testClass.test_method();
    }

    private static class TestClass {
        public void test_method(Scanner scanner) {
            String test2 = scanner.next();
            System.out.println("Test 2: " + test2);
        }
    }
}

推荐阅读