Play2.0 Scala:将配置中的数据提取为字符串

Play2.0 Scala:将配置中的数据提取为字符串,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,在Play2.0项目中,我使用Scala试图从配置文件中获取数据 目前,我使用以下代码提取字符串: val foo = Play.current.configuration.getString("foo") 我本来希望返回一个String对象,但是返回了一个选项[String]对象 我找不到任何描述选项[T]对象并调用toString()返回Some(foo)的Java文档 使用配置方法从配置中提取Boolean和Int值时也会发生同样的情况,即返回Option[Boolean]和Option

在Play2.0项目中,我使用Scala试图从配置文件中获取数据

目前,我使用以下代码提取字符串:

val foo = Play.current.configuration.getString("foo")
我本来希望返回一个
String
对象,但是返回了一个
选项[String]
对象

我找不到任何描述
选项[T]
对象并调用
toString()
返回
Some(foo)
的Java文档

使用配置方法从配置中提取
Boolean
Int
值时也会发生同样的情况,即返回
Option[Boolean]
Option[Int]

有人能解释一下这个
选项[T]
对象是什么,以及我如何以
应用程序
方法调用暗示它将被返回的形式访问我想要的值吗?

在scala中,该类型表示类型
T
的可选值。如果您习惯使用Java术语,则可以将选项称为“可能为
null
”的值

在游戏中,它们在获取配置时使用,因为字符串可能不存在-如果您尝试使用Java读取它,它将返回
null

要获取配置字符串,可以使用
getOrElse
,在配置字符串不存在的情况下,可以提供默认值:

val foo = Play.current.configuration.getString("foo").getOrElse("bar")

我发现使用这个模式我最终编写了:Play.current.configuration.getString(someId.getOrElse)(抛出新异常(“Key:+someId+”未找到”)很多。如果在配置中找不到键,是否有更好的模式总是抛出异常?@sthomps我认为您可以使用
get
,如果没有键的元素,它会抛出一个
NoSuchElementException
。但如果可能,最好是有一些合理的默认值。