Scala Collections - 使用转换器将 Any 类型转换为 Seq[T]

Scala Collections - type casting Any to Seq[T] using Converters

我是 Scala 的新手,我正在尝试用 JavaConverters 替换已弃用的 JavaConversions 库。原始代码如下所示:

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

当我将上面代码中的 JavaConversions 替换为 JavaConvertors 时,出现编译错误:

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

我理解异常的含义,但我不确定如何将上面的代码转换为 return 一个 Seq[Address] 而不是 Any。此外,Converters 中有一个 asJava 方法可以将 Scala 列表转换为 java 列表,但我不确定如何在这里使用它。想法?

您需要说明最终类型并将 Java 集合显式转换为 Scala 集合 (asScala):

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