gpt4 book ai didi

java ;一旦遇到输入,我就会得到 "Exception in thread "main"java.util.NoSuchElementException"

转载 作者:行者123 更新时间:2023-12-01 18:02:00 25 4
gpt4 key购买 nike

我正在制作一个非常基本的数据库管理程序,我有一个名称和值扫描仪在一个类(Account.java)中工作正常,

public static void createNewAccount() {

Scanner newScan = new Scanner(System.in);
System.out.print("Enter name: ");
String inputName = newScan.nextLine();
name = inputName;
System.out.print("Enter the initial value: ");
double inputBalance = newScan.nextInt();
System.out.println("... successfully created new account.");

keyScan.close();


Account newAccount = new Account(inputName, inputBalance);

}

调试这一点工作正常,但是当我跳回到我的另一个类(Management.java)并点击我的 switch 语句时,我遇到了这个错误,而且我似乎无法在其他地方找到答案(很多人都会遇到同样的错误,但似乎出于不同的原因?)

...
Scanner in = new Scanner(System.in);

Account.createAccount();
//Debugging statement #1 here works fine, can access other Class
do{
/*
Menu Options
*/
System.out.println(">> Select your option (1-6)");
choice = in.nextInt();

//Debugging statement #2 here doesn't display, this is where the error hits.

switch (choice) {
... Cases
}

这是控制台输出:

>> Select your option (1-6)
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Management.main(Management.java:30)

我很困惑为什么会发生这种情况,因为我有另一台工作得很好的扫描仪。

最佳答案

当您关闭Scanner时,它也会关闭底层的InputStream。因此,如果您在程序的早期位置使用 System.in 创建扫描仪,然后关闭该扫描仪,那么它也会关闭 System.in。

一旦输入流关闭,就无法再读取它,尝试这样做将导致 NoSuchElementException

关于 java ;一旦遇到输入,我就会得到 "Exception in thread "main"java.util.NoSuchElementException",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40230230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com