Java Objekt funktioniert nicht (Konstruktor, Scanner)?

2 Antworten

Der Scanner ist an den Eingabekanal gebunden. Wenn er geschlossen wird, schließt er auch die verwendeten Ressourcen - in dem Fall also ebenso den Eingabestream (System.in). Der ist beim nächsten Scanner-Objekt, welches Eingaben auslesen möchte also nicht mehr vorhanden / verfügbar.

Entweder du entfernst den close-Aufruf oder besser, du legst dir ein Attribut an, welches eine Scanner-Instanz hält und bspw. innerhalb von finalize geschlossen wird.

JasonTheBeast 
Fragesteller
 27.12.2019, 18:23

Habe ich gemacht und klappt jetzt auch wunderbar!

0

Wie die Doku zu nextInt() sagt:

"NoSuchElementException: throws if input is exhausted"

Es gibt also keine weitere Eingabe. Mit scanner.hasNextInt() ließe sich das im Voraus prüfen.

Woher ich das weiß:Studium / Ausbildung – Datenverarbeitungs-Kfm, Hobby- und Profi-Programmierer