我是新來斯卡拉,當我編譯我的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'的轉換實際上並不是必須的,只需要花費時間和內存。 –