Появляется ошибка при повторном вызове nextInt()

При повторном вызове функции nextInt() класса Scanner появляется ошибка:

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.base/java.util.Scanner.nextLine(Scanner.java:1651)
    at classesOfDungeonMaster.GameDungeon.ActionsGame.setInputInt(ActionsGame.java:12)
    at classesOfDungeonMaster.GameDungeon.GameDungeon.fightOnThePlaceDungeon(GameDungeon.java:22)
    at classesOfDungeonMaster.GameDungeon.GameDungeon.startGame(GameDungeon.java:15)
    at com.company.Main.main(Main.java:15)

Честно говоря понятия не имею в чем проблема ибо такую ошибку впервые вижу. Пробовал обнулять ссылочную переменную(хотя это делать вообще не надо)

Интерфейс ActionsGame


    package classesOfDungeonMaster.GameDungeon;

import java.util.Locale;
import java.util.Scanner;

public interface ActionsGame {
    public default int setInputInt(){
        int inputNum;
        Scanner in = new Scanner(System.in);
        in.reset();
        System.out.print("Input a number: ");
        inputNum = Integer.parseInt(in.nextLine()); //здесь появляется ошибка при повторном вызове 

        System.out.printf("Your number: %d \n", inputNum);
        in.close();
        in = null;
        return inputNum;
    }
}

Класс GameDungeon


    package classesOfDungeonMaster.GameDungeon;

import classesOfDungeonMaster.Dungeon.PlacesOfDungeon;

public class GameDungeon implements ActionsGame {
    PlacesOfDungeon placesOfDungeon = new PlacesOfDungeon();
    public void startGame() {

        placesOfDungeon.generateEnemiesList(placesOfDungeon.getEnemiesList());            //список противников
        placesOfDungeon.generatePlaceOfDungeon                                           //генерация комнаты
                (placesOfDungeon.getEnemiesList(), placesOfDungeon.getPlaceOfDungeon());   //с противником/противниками
        placesOfDungeon.registrationHeroes();
        placesOfDungeon.GameMessageOfEnemies();                                          //
        placesOfDungeon.GameMessageOfToDoActions();
        fightOnThePlaceDungeon();
    }

    public PlacesOfDungeon fightOnThePlaceDungeon() {
        int inputNum;
        do {
            inputNum = 0;
            inputNum = setInputInt(); 
            if (inputNum == 1) {
                placesOfDungeon.getPlaceOfDungeon().get(0).setHealthEnemies(placesOfDungeon.
                        getPlaceOfDungeon().get(0).getHealthEnemies() - placesOfDungeon.
                        getHeroesList().get(0).getAttackHero());
                
            } else if (inputNum == 2) {


            } else {

            }
            System.out.println((placesOfDungeon.getPlaceOfDungeon().get(0).getHealthEnemies()));
            
        }while (placesOfDungeon.getPlaceOfDungeon().get(0).getHealthEnemies()>=0);
       
        return placesOfDungeon;
    }


    public void finishGame() {
    }


}

Класс Main


    package com.company;

import classesOfDungeonMaster.Dungeon.PlacesOfDungeon;
import classesOfDungeonMaster.Enemies.Enemies;
import classesOfDungeonMaster.Enemies.Hobgoblin;
import classesOfDungeonMaster.Enemies.Rider;
import classesOfDungeonMaster.GameDungeon.GameDungeon;

import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {
        GameDungeon gameDungeon = new GameDungeon();
        gameDungeon.startGame();
    }

}


Ответы (0 шт):