2017-07-27 52 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; 

這是法律通過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)'做了訣竅。 –

相關問題