Exercise "At the bar "





  • Wofür steht in der Zeile

    try(final Scanner scan=new Scanner(System.in) )
    

    Scanner? Ist das ein Datentyp wie int?
    scan? Ist das dann die Finale Variable? Was wird der Zugeordnet?
    warum kann scan später so im code benutzt werden?

    final int userInput = scan.nextInt();
    

    Was macht das try was um den ganzen code steht?



  • @Günster

    Scanner ist eine Klasse und unterscheidet sich fundamental von den 8 primitiven Typen byte, short,...,boolean in Java. Die Details der Verwendung, etwa der Methode scan(), besprechen wir bald im Kapitel 4.

    Es handelt sich um ein sogenanntes try-with-resources Statement. Dieses bewirkt, dass alle mit von einem Scanner belegten Ressourcen nach Verlassen des Blocks automatisch freigegeben werden.

    Ohne diesen Block müsste man dies selbst erledigen:

    Scanner scanner = new Scanner(System.in);
    ...
    ... // Verwendung des Scanners
    ...
    scanner.close(); // Ende der Nutzung des Scanners, Freigabe benötigter Ressourcen
    

    Problem: Es ist leicht, diese close() Statement zu vergessen. Davor bewahrt Sie obiger try-with-resources Mechanismus, welcher automatisch hinter den Kulissen den scanner.close() Aufruf durchführt.


Log in to reply