【问题标题】:Scala Map to Java HashMapScala 映射到 Java HashMap
【发布时间】:2014-06-14 13:43:26
【问题描述】:

我有一个 Scala 函数 f(s1: String, s2: String): Map[String,String]

我想让一个用 Java 编码的同事调用我正在编写的 Java 方法:

HashMap<String, String> f(String s1, String s2)

这调用了我的 Scala 函数。我发现,在 Java 方面,Scala 已返回 scala.collection.immutable.Map

如何使用它制作 Java HashMap?还是我应该做点别的?

【问题讨论】:

标签: scala scala-collections scala-java-interop


【解决方案1】:

我认为您正在寻找的是here。特别是mapAsJavaMap 方法。

Where the preferred usage is explained in this SO question 使用导入的implicitsasJava

【讨论】:

  • 谢谢,贾斯汀。这让我走上了正确的道路。在 Scala 方面,我这样做了:val im = f(s1,s2); val mm = collections.mutable.Map(im:toSeq: _*); JavaConversions.mapAsJavaMap(mm),这导致了 Java 方面的可变映射(我认为这是 Java 正在寻找的,而我的映射是不可变的)。
  • 其实你想要import JavaConverters._m.asJava。这是普遍的智慧,如果有人能找到它,必须有一个重复的问题。样式指南是使用转换器并明确要求转换。
  • 是的,抱歉,但我支持 som-snytt — 这本质上是一个仅链接的答案,它建议应避免使用大多数 Scala 开发人员都同意的包的单一用法。
  • @som-snytt 抱歉,我太依赖内置文档了。编辑得更具体。
  • 谢谢,som-snytt,我会听从你的建议。
猜你喜欢
  • 1970-01-01
  • 2011-04-18
  • 2020-10-22
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
相关资源
最近更新 更多