扫描仪无法解除引用

时间:2015-06-18 15:07:08

标签: java

我的问题是创建一个名为getScanner的方法,每次调用它时,另一个方法都可以调用getScanner来获取下一行输入。

代码:

public static void getScanner() {
    Scanner input = new Scanner(System.in);
}

public static String getInput() { 
    String userInput = getScanner().nextLine();
    return userInput
}

错误

   error: void cannot be dereferenced
                          String userInput = getScanner().nextLine();
                          1 error

基本上,我有多个方法需要将用户Scanner作为输入,而不是声明全局变量或局部变量,我想调用一个方法,每次调用时都会创建一个Scanner作为输入并为此赋值变量输入

3 个答案:

答案 0 :(得分:2)

您设置的void返回类型不返回任何内容。由于您需要扫描仪对象,请在方法中返回扫描仪。

public static Scanner getScanner() {
    Scanner input = new Scanner(System.in);
    return input }

public static String getInput() { 
    String userInput = getScanner().nextLine();
    return userInput }

答案 1 :(得分:1)

您没有返回Scanner的实例。使用:

public static Scanner getScanner(){
return new Scanner(System.in);
}

答案 2 :(得分:1)

工作守则。经过测试和编译。

public class testj
{

    public static void main(String[] args)
    {
        System.out.println(getInput());
    }

    private static String getInput()
    {
        String userInput = getScanner().nextLine();
        return userInput;
    }

    private static Scanner getScanner()
    {
        return new Scanner(System.in);
    }
}

我们必须在方法标题中指定返回object的内容。

getInput()

的较短版本

您也可以修改此方法,如下所示

    private static String getInput()
    {
        return getScanner().nextLine();
    }