【发布时间】:2018-03-22 11:03:18
【问题描述】:
我是 scala 的新手,当我编译我的 SBT 项目时,我看到了这个异常:
[error] C:\dev\reactive-rabbit\src\main\scala\io\scalac\amqp\impl\RabbitConnection.scala:58: type mismatch;
[error] found : Map[String,String] (in scala.collection.immutable)
[error] required: Map[String,Object] (in java.util)
[error] future(onChannel(_.exchangeBind(destination, source, routingKey, arguments)))
[error] ^
我最近将已弃用的 JavaConversions 库替换为 JavaConverters。我的代码如下所示:
import scala.collection.JavaConvertors._
override def exchangeBind(destination: String, source: String, routingKey: String,
arguments: Map[String, String]) =
future(onChannel(_.exchangeBind(destination, source, routingKey, arguments)))
.map(_ ⇒ Exchange.BindOk())
我查看了onChannel() 的合同,它的arguments 参数需要Map[String, Object] 类型(java 集合),但我传递给它一个 Map[String, String](scala 不可变)。在将其传递给方法时如何更改此参数的数据类型?谢谢。
【问题讨论】:
标签: java scala sbt scala-collections