我是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();