Scala到Java的转换

时间:2017-06-19 11:21:02

标签: java scala collections

我想在Scala中使用Map with Object的参考==比较。在Java中我们有java.util.IdentityHashMap所以我想使用它。我这样做了:

  val channels: Map[String, Handler] = (new util.IdentityHashMap).asScala.toMap

问题是docuemntation只说

  

将Java集合转换为相应的Scala集合

所以它不清楚它只是Java集合的视图还是新创建的scala.collection

1 个答案:

答案 0 :(得分:4)

如果您查看特定types的隐式定义,可以看到mapAsScalaMapConverter记录为:

  

添加一个asScala方法,隐式将Java Map转换为Scala可变Map。 返回的Scala Map由提供的Java Map支持,通过Scala接口使用它的任何副作用都将通过Java界面显示,反之亦然

     

如果以前从隐式或显式获取Java Map   调用asMap(scala.collection.mutable.Map)然后调用原始的Scala   地图将被退回。

粗体印刷部分应该回答你的问题。