Scala 正在处理Play.current.configuration.getStringList(“mongodb.ReplicateSeeds”)选项

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

我有一个conf/application.conf设置,如

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]]
,我们希望它是scala
List
。通过执行
映射(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]]
,我们希望它是scala
List
。通过执行
映射(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"))