[Java] Proplem mit Scanner

MasterOfWar

Lt. Commander
Registriert
Jan. 2009
Beiträge
1.397
Guten Abend,
ich habe folgenden Code:
Code:
public static void getPrint() throws InterruptedException{
		Scanner s = new Scanner(System.in);	
		while(true){
				String temp = s.nextLine();
				stack.push(temp);
				
			}

Wird die getPrint() Methode aufgerufen funktioniert auch alles wie geplant: Die Tastatureingaben werden auf den Stack gelegt.
Mach ich allerdings folgendes:
Code:
static Scanner input;
....
input = new Scanner(System.in);
while(true){
				String in = input.nextLine();
				doSomething(in);
			}
Bekomme ich eine "java.util.NoSuchElementException: No line found" Exception. Ich verstehe nicht genau wo der Unterschied liegt, bzw. wieso die erste Methode funktioniert, die zweite aber nicht?
 
Ich denke es liegt daran, dass dein Scanner static ist.
Somit wird er einmal, vor dem erzeugen der Klasse initialisiert, wie es für static member üblich ist.
Also entweder static weg und daraus einen private/protected member machen oder einfach wieder wie
zuvor direkt in der Methode mit new erzeugen oder eben direkt initialisieren wie man es mit static Variablen macht.
 
Zuletzt bearbeitet:
Zurück
Oben