【发布时间】:2017-10-10 18:34:25
【问题描述】:
我开始使用 Scala,我正在用 JavaConverters 替换已弃用的 JavaConversions 库。我有以下代码:
import scala.collection.JavaConversions._
new AMQP.BasicProperties.Builder()
.contentType(message.contentType.map(_.toString).orNull)
.contentEncoding(message.contentEncoding.orNull)
.headers(message.headers) //<<<<--------------- I SEE THE ERROR ON THIS LINE (datatype of message.heads is Map[String, String]
.deliveryMode(toDeliveryMode(message.mode))
.priority(..)
.correlationId(..)
.replyTo(..)
.expiration(..)
.messageId(..)
.timestamp(..)
.`type`(..)
.userId(..)
.appId(..)
.build()
}
当我将 JavaConversions 的导入替换为 JavaConverters(或者,完全注释掉导入)时,我得到编译异常:
Type mismatch expected: util.Map[String, AnyRef], actual Map[String, String]
我错过了什么?
【问题讨论】:
-
你错过了
.asJava显然util.Map[String, AnyRef]是一个 Java 集合Map[String, String]是一个 Scala 集合 -
@dk14 你能详细说明一下吗?我需要在哪里添加
.asJava?
标签: java scala sbt scala-collections