我不知道发生了什么。过去,我已经多次使用Scanner
进行输入,并且从未遇到任何长期问题。现在,无论我做什么,每次我要求用户输入时,我都会不断得到NoSuchElementException
。我已经检查了先前的答案,但它们没有帮助(大多数情况下,他们似乎建议对hasnextXXXX
使用一段时间,但这实际上无济于事,因为除了我的代码没有例外,我的代码什么也不做)。>
下面是错误和我的代码(最新迭代,在setter中调用它之前,我在构造函数中调用它,总是相同的异常)。到底是怎么回事?!请帮忙!!!
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Character.setAttack(Character.java:24)
at Character.setAll(Character.java:15)
at Fight.main(Fight.java:25)
import java.util.Scanner;
public class Character {
private int attack;
private Scanner in;
public Character() {
in = new Scanner(System.in);
}
public void setAll() {
setAttack(0);
}
public int getAttack() {
return attack;
}
public void setAttack(int attack) {
Scanner scan = new Scanner(System.in);
attack = scan.nextInt();
this.attack = attack;
System.out.println("character// attack is " + attack);//test
}
}
答案 0 :(得分:0)
如果您删除第二次启动扫描程序,并将setAttack()
方法修复为以下问题:
public void setAttack(int attack) {
attack = in.nextInt();
this.attack = attack;
System.out.println("character// attack is "+attack);//test
}
...并输入int
进行控制台,一切正常。