2017-07-27 13 views
0

は、このJavaを考える:ScalaでJava Map <String、Object>引数を宣言しますか?

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 

答えて

3
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](かっこなし)でも動作します。

+0

ありがとうございました。 'channel.queueDeclare(inputQueueName、true、false、true、Map.empty [String、Object] .asJava)'はトリックを行いました。 –

関連する問題