Warum bekomme ich ein [Some] -Objekt statt eines [String] -Objekts?
Das Some-Objekt funktioniert nicht als String-Parameter in einem Methodenaufruf.
Warum erhalte ich in Scala ein Some anstelle eines Strings
Die config def
gibt eine String
zurück, so erwarte ich den Typ String
.
Aber wenn ich "Hallo" Scala schreibe, ist es richtig.
-Code
def config(s: String) = Play.current.configuration.getString(s).toString()
Logger.info(config("recaptcha.publicKey"))
Logger.info("Hello")
Ausgabe
[info] application - Some(6LeDMdASAAAAAC4CFIDY-5M7NEZ_WnO0NO9CSdtj)
[info] application - Hello
Die erste ist gut, wenn man gerne .. Runtime . –
@ Luigi +1 für die Info. Aber ich habe das Gefühl, dass du sarkastisch bist. Ich bevorzuge eine RuntimeException ... fail hart, schnell und an der richtigen Stelle in der Stack-Trace statt später an einem zufälligen Ort. Wenn meine Konfigurationsdatei falsch eingegeben wurde, möchte ich sie pronto mit einem Knall wissen. – Farmor
@Farmor fair genug, aber wenn Sie wirklich wollen, dass es eine Ausnahme werfen, sollten Sie immer noch nicht verwenden 'get': use' getOrElse (sys.error ("Illegal config String")) ', um Bedenken zu trennen, den Fehler zu klären Nachricht, und machen Sie es deutlicher, dass Sie hier tatsächlich eine Gültigkeitsprüfung durchführen. –