【问题标题】:Is there a better way to convert a Scala Map to Java Map?有没有更好的方法将 Scala Map 转换为 Java Map?
【发布时间】:2014-07-27 19:43:52
【问题描述】:

我找到了一个解决方案,但不是太优雅:

mapAsJavaMap(Map("param1"->someObject, "param2"->otherObject ))

我发现了一些包含“asJava”调用的示例,但它在我的 Scala 2.10.X 配置中不起作用。

【问题讨论】:

  • “不工作”是什么意思?

标签: java scala map type-conversion


【解决方案1】:

有对象JavaConverters 可以为您解决问题:

import scala.collection.JavaConverters.mapAsJavaMapConverter

Map("param1"-> 1, "param2"-> 2).asJava
//> res0: java.util.Map[String,Int] = {param1=1, param2=2}

编辑:使用通配符导入确实是一个糟糕的编程习惯,因为它们会使您的命名空间变得混乱,并且可能会将意外的隐式转换/值引入范围。因此将通配符导入更改为显式导入。

【讨论】:

  • 这与 OP 代码有何不同(提示——不要在导入时使用 ._)?投反对票。
  • @om-nom-nom:在某些地方导入包或对象中的所有内容是完全合理的,我个人认为这是其中之一。
  • @Lauri 这与 nyuwec(原始海报)在 hist question 中提供的 sn-p 有何不同? 实际上我更反对其他问题(与进口没有直接关系),这实际上只是我对您的回答的误解。很抱歉给您添麻烦了,已撤销投票。
  • 因为只有当你显式调用asJava 时才会发生转换,否则我极不可能使用这个符号,所以我对在这些转换器中使用通配符导入没有任何疑虑。 IIRC 还有另一个转换包不需要你调用任何东西,是的,我会小心那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-02
  • 2015-01-14
  • 1970-01-01
  • 2019-11-20
  • 2023-02-02
  • 2011-01-12
  • 1970-01-01
相关资源
最近更新 更多