2016-10-30 2 views
0

Ich schrieb ein starkes Skript wie folgt:Wie verwende ich System.in.readLine() in Groovy?

print "Please enter your name:" 
def name=System.in.readLine() 
println "My name is : ${name}" 

Aber wenn ich es lief, bekam ich eine Ausnahme:

Exception geworfen groovy.lang.MissingMethodException: Keine Unterschrift Methode: java. io.BufferedInputStream.readLine() gilt für Argumenttypen:() Werte: [] Mögliche Lösungen: readLines(), readLines (java.lang.String), eachLine (groovy.lang.Closure), eachLine (java.lang .String, groovy.lang.Closure), eachLine (int, groovy.lang.Closure), eachLine (java.lang.String, int, groovy.lang.Closure)

Und ich fand System.in.readLines() hat funktioniert, aber diese Methode lesen mehrere Zeilen.
Außerdem kann die grundlegende Eingabefunktion nur in der Befehlszeile funktionieren. In GroovyConsole kann ich beim Ausführen des Skripts nichts eingeben.
Jeder Veteran kann mir helfen? Danke vielmals!

Antwort

0

Verwenden System.console().readLine()

def name=System.console().readLine("Please enter your name: ") 
println "My name is : ${name}" 
+0

Ja! Es klappt! Vielen Dank! Aber ich bin immer noch neugierig. Warum funktioniert System.in.readLine() nicht? Das Lehrbuch hat es so gemacht – Julian20151006