2017-10-10 38 views
0

我是新来的斯卡拉,我试图用JavaConverters替换过时的JavaConversions库。原代码如下所示:斯卡拉收集 - 类型铸造任何到Seq [T]使用转换器

addresses = { 
     import scala.collection.JavaConversions._ 
     config.getConfigList("amqp.addresses").map(address ⇒ 
     Address(
      host = address.foo() 
     ))(collection.breakOut) 
} 

当我在代码JavaConvertors更换JavaConversions上面,我得到一个编译错误:

Type mismatch: expected Seq[Address], actual: Any 

我理解的异常意味着什么,但我不当然,我可以如何转换上面的代码是返回一个Seq[Address]而不是一个Any。此外,转换器中有一个asJava方法将scala列表转换为java列表,但不知道如何在此处使用它。思考?

回答

2

您需要时的最终类型,明确了Java集合转换成一个斯卡拉(asScala):

addresses: Seq[Address] = { 
     import scala.collection.JavaConverters._ 
     config.getConfigList("amqp.addresses").asScala.map(address ⇒ 
     Address(
      host = address.foo() 
     ))(collection.breakOut) 
} 
+0

的感谢!这样可行。我有一个关于Converters库的相关问题,但是我打开了一个新的线程让它保持清洁:https://stackoverflow.com/questions/46673632/scala-collections-util-mapstring-anyref-mapstring-string –