我是 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
我理解异常的含义,但我不确定如何转换上面的代码以使其返回 Seq[Address]
而不是 Any
。另外,转换器中有一个 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)
}
关于java - Scala Collections - 使用转换器将 Any 类型转换为 Seq[T],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46672755/