Scala 正在处理Play.current.configuration.getStringList(“mongodb.ReplicateSeeds”)选项
我有一个conf/application.conf设置,如Scala 正在处理Play.current.configuration.getStringList(“mongodb.ReplicateSeeds”)选项,scala,playframework,playframework-2.1,playframework-2.5,Scala,Playframework,Playframework 2.1,Playframework 2.5,我有一个conf/application.conf设置,如 mongodb.replicaSetSeeds = ["bobk-mbp.local:27017","bobk-mbp.local:27018"] 我在我的代码中提取它,就像(实际提取有点不同,但这是它的要点) 但是编译器讨厌我 type mismatch; found : Object required: List[String] getStringList的签名是 def getStringList(path: Stri
mongodb.replicaSetSeeds = ["bobk-mbp.local:27017","bobk-mbp.local:27018"]
我在我的代码中提取它,就像(实际提取有点不同,但这是它的要点)
但是编译器讨厌我
type mismatch; found : Object required: List[String]
getStringList的签名是
def getStringList(path: String): Option[java.util.List[String]]
我如何处理这里的“无”情况,或者我的问题列表[String]与列表[java.util.String]不同?试一试:
import collection.JavaConversions._
val optList:Option[List[String]] = Play.current.configuration.getStringList("mongodb.replicaSetSeeds").map(_.toList)
val list = optList.getOrElse(List("localhost"))
这里发生了很多事情。首先,您需要导入JavaConversions
implicits,因为返回的是选项[java.util.List[String]]
,我们希望它是scalaList
。通过执行映射(u.toList)
,我正在强制隐式转换,以启动并获得一个选项[List[String]]
,从这里开始,事情就非常简单了。试一试:
import collection.JavaConversions._
val optList:Option[List[String]] = Play.current.configuration.getStringList("mongodb.replicaSetSeeds").map(_.toList)
val list = optList.getOrElse(List("localhost"))
这里发生了很多事情。首先,您需要导入
JavaConversions
implicits,因为返回的是选项[java.util.List[String]]
,我们希望它是scalaList
。通过执行映射(u.toList)
,我强制隐式转换启动,并获得一个选项[List[String]]
,从这里开始,事情就非常简单了。在play 2.5中,您需要使用依赖项注入,以下内容对我来说很好:
1) 在您的类中注入配置
class Application @Inject()(
configuration: play.api.Configuration
) ...
2) 用你的方法
import scala.collection.JavaConversions._
val optlist = configuration.getStringList("mongodb.replicaSetSeeds").map{_.toList}
val list = optList.getOrElse(List("localhost"))
在重头戏2.5中,您需要使用依赖项注入,以下内容对我很有用: 1) 在您的类中注入
配置
class Application @Inject()(
configuration: play.api.Configuration
) ...
2) 用你的方法
import scala.collection.JavaConversions._
val optlist = configuration.getStringList("mongodb.replicaSetSeeds").map{_.toList}
val list = optList.getOrElse(List("localhost"))