在 Scala 中声明 Java Map<String、Object> 参数?



给定这个Java:

Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, 
Map<String, Object> arguments) throws IOException;

从 Scala 传递这样的null是合法的:

channel.queueDeclare(inputQueueName, true, false, true, null)

在 Scala 中传递空地图的声明是什么?这:

channel.queueDeclare(inputQueueName, true, false, true, Map[String, Object]())

结果:

found   : scala.collection.immutable.Map[String,Object]
required: java.util.Map[String,Object]
channel.queueDeclare(inputQueueName, true, false, true, Map[String,Object]())

和:

channel.queueDeclare(inputQueueName, true, false, true, java.util.HashMap[String,Object]())

结果:

object java.util.HashMap is not a value
import scala.collection.JavaConverters._
val emptyMap = Map.empty[String, Object].asJava
// java.util.Map[String, Object]
channel.queueDeclare(inputQueueName, true, false, true, emptyMap)

或:

channel.queueDeclare(inputQueueName, true, false, true, new java.util.HashMap[String, Object]())
// ^ add new here

new java.util.HashMap[String, Object](不带括号(也有效。

相关内容

最新更新