Je suis nouveau à scala et quand je compile mon projet de SBT, je vois cette exception:Type de Cast: Carte [String, String] à Map [String, Object]
[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] ^
J'ai récemment remplacé la JavaConversions
déconseille bibliothèque à JavaConverters
. Mon code ressemble à ceci:
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())
J'ai regardé le contrat pour onChannel()
et son paramètre arguments
nécessite de type Map[String, Object]
(collections java), mais je passe une carte [String, String] (scala immuable). Comment puis-je changer le type de données pour cet argument en le passant à la méthode? Merci.
La conversion à l'aide de 'map' n'est pas vraiment nécessaire et prendra juste du temps et de la mémoire. –