La fermeture d'un Scanner throws java.util.NoSuchElementException
Je suis en train d'écrire un RPG système de combat à partir de zéro en Java, ambitieux droit? Eh bien, je vais avoir quelques difficultés. C'est mon code:
void turnChoice() {
System.out.println("What will you do? Say (Fight) (Run) (Use Item)");
Scanner turnChoice = new Scanner(System.in);
switch (turnChoice.nextLine()) {
case ("Fight"):
Combat fighting = new Combat();
fighting.fight();
default:
}
turnChoice.close();
}
Lorsqu'il atteint ce point dans le code j'obtiens:
Qu'allez-vous faire? Dire (Combat) (Run) (Utiliser L'Élément)
Exception in thread "main" java.util.NoSuchElementException: Aucune ligne trouvée
à java.util.Scanner.nextLine(Source Inconnue)
au Combat.turnChoice(Combat.java:23)
La classe est appelée Combat, j'ai juste envie de donner une option pour se battre ou courir ou utiliser des articles, j'essaie juste de la lutte d'abord la méthode. S'il vous plaît aider, je suis un peu nouveau pour Java afin de ne pas rendre les choses trop compliquées, si possible.
import java.util.Scanner;
?Qu'est-ce que Combat.java ligne 23?
OriginalL'auteur user2172205 | 2013-03-15
Vous devez vous connecter pour publier un commentaire.
Lors de la lecture à l'aide de
Scanner
deSystem.in
, vous ne devez pas fermer toutScanner
cas en raison de la fermeture d'un va fermerSystem.in
et lorsque vous effectuez les opérations suivantes,NoSuchElementException
sera levée.System.in
est fermé par la JVM et vous ne devriez pas le fermer. Ne vous inquiétez pas à ce sujet. Les Scanners sont juste tampon lecteurs.OriginalL'auteur mostruash