Play2.0 Scala:将配置中的数据提取为字符串
在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
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
。但如果可能,最好是有一些合理的默认值。