简单java方法getIntBetweenBounds给出NullPointerException错误
我正在使用一个名为DealOrNoDeal的类为Java游戏创建一个简单的方法。 这是一种非常简单的方法,可以在两个边界之间从用户处获取int输入。但出于某种原因,它抛出了一个java.lang.NullPointerException 这是我的代码:简单java方法getIntBetweenBounds给出NullPointerException错误,java,arrays,int,bounds,Java,Arrays,Int,Bounds,我正在使用一个名为DealOrNoDeal的类为Java游戏创建一个简单的方法。 这是一种非常简单的方法,可以在两个边界之间从用户处获取int输入。但出于某种原因,它抛出了一个java.lang.NullPointerException 这是我的代码: import java.util.Scanner; import java.util.Arrays; public class DealOrNoDeal { public Scanner scanner; public stati
import java.util.Scanner;
import java.util.Arrays;
public class DealOrNoDeal {
public Scanner scanner;
public static void main(String[] args) {
new DealOrNoDeal().run();
}
public void run() {
Scanner scanner = new Scanner(System.in);
int[] values = {1, 20, 100, 1000, 2000, 5000};
System.out.println("Please select the suitcase that you would like to keep (1-6): ");
int keuze = getIntBetweenBounds(1, 6);
}
private int getIntBetweenBounds(int lowerBound, int upperBound) {
int result = scanner.nextInt();
System.out.println("Please select the suitcase that you would like to keep (1-6): ");
while (result < lowerBound || result > upperBound) {
System.out.println("Please select the suitcase that you would like to keep (1-6): ");
result = scanner.nextInt();
}
return result;
}
您在此行中重新声明扫描仪:
Scanner Scanner=新ScannerSystem.in;
卸下扫描仪,您的代码应能正常工作:
扫描仪=新的ScannerSystem.in;
空指针是由于实例变量的第一个扫描程序未初始化。您创建了一个名为scanner的局部变量,该变量的名称与名为scanner的实例变量的名称相同。是否可以发布堆栈跟踪?堆栈跟踪是什么意思?如果更改scanner scanner=new ScannerSystem.in;by this.scanner=new ScannerSystem.in@LoekRomer堆栈跟踪是您返回的完整跟踪exception@rafa塔克斯!现在可以了!不需要发表评论。这是一个正确的答案。