Wenn Sie mit Javas Scanner gearbeitet haben, wissen Sie, dass es wichtig ist, ihn zu schließen, um Ressourcenlecks zu vermeiden – insbesondere beim Lesen aus Dateien. Aber wenn es um System.in geht, ist es anders.
Im Allgemeinen möchten Sie System.in nicht schließen, da dadurch alle zukünftigen Eingaben gestoppt werden. Dies kann zu Problemen führen, wenn andere Teile Ihres Programms noch Benutzereingaben benötigen.
Java’s Try-with-Ressourcen macht es einfach. Der Scanner wird automatisch geschlossen, ohne System.in zu schließen, sodass Sie Benutzereingaben sicher lesen können.
Einige IDEs (wie Eclipse oder IntelliJ) melden möglicherweise einen potenziellen Ressourcenverlust mit dem Scanner und behandeln alle Instanzen gleich. Dies kann insbesondere bei Verwendung von System.in irreführend sein, Sie können diese Warnungen jedoch getrost ignorieren.
Verwenden Sie Try-with-Resources, um sicherzustellen, dass der Scanner ordnungsgemäß geschlossen wird, während System.in geöffnet bleibt.
Vermeiden Sie es, System.in manuell zu schließen. Lassen Sie die JVM damit umgehen.
Beispielcode:
try (Scanner objName = new Scanner(System.in)) { System.out.println("What's your name?"); String userName = objName.nextLine(); System.out.println("Hello, " + userName + "!"); }
Das obige ist der detaillierte Inhalt vonUmgang mit Ressourcenlecks mit Scanner und System.in in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!