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)
}
我是 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)
}