我是新来斯卡拉,当我编译我的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'的转换实际上并不是必须的,只需要花费时间和内存。 –