我是Java的初学者,想知道是否有人可以帮助我解决这个问题。

我想做的是试图循环用户输入。我想知道当我尝试运行loopPlay()时为什么会得到空指针异常;

编辑:我现在知道我还没有初始化userInput。有人可以告诉我该怎么做吗?

import java.util.Scanner;

public class InputReader
{

private Scanner scanner;

    /**
     * Create a new InputReader to read user input.
     */
    public InputReader()
    {
        scanner = new Scanner(System.in);
    }

    /**
     * @return the user's input as a String
     */
    public String getInput()
    {
        return scanner.nextLine();
    }
}




class StringPlay {

    private InputReader userInput;



    public void loopPlay(int timesToLoop) {
        if (timesToLoop <= 0) {
            System.out.println("Error: input too low.");
            return;
        } else {
            int counter = timesToLoop;

            while (timesToLoop > 0) {
                System.out.println("Type a sentence: ");
                String input = userInput.getInput();
                System.out.println("You typed: "+ input);
                counter--;
            }

        }
    }
}

最佳答案

就像其他人说的那样,您需要初始化userInput。下面的行将调用InputReader构造函数。

private InputReader userInput = new InputReader();

09-27 21:12