【发布时间】:2018-04-16 14:22:35
【问题描述】:
关于 Scala/Java 可变/不可变转换有很多类似的问题,但我找不到这个确切的问题。
我有一个使用 scala.collection.immutable.Map m 的 Java 方法。我需要插入/删除一些条目,然后返回新的 scala 映射(不可变或可变——没关系)。
目前我正在做以下事情:
java.util.HashMap<T1, T2> javaMap = new java.util.HashMap<>(
(Map<T1, T2>) JavaConverters.mapAsJavaMapConverter(m).asJava());
javaMap.put(k1, v1);
javaMap.remove(k2);
return scala.collection.JavaConverters.mapAsScalaMapConverter(javaMap).asScala();
但是必须在地图类型之间转换两次是非常难看的。我认为理想的解决方案是将不可变的 scala 映射转换为可变的 scala 映射,然后执行操作并返回它,但我找不到任何关于将不可变的 scala 映射转换为 Java 中的可变 scala 映射的文档或示例。
非常感谢任何帮助。
【问题讨论】:
标签: java scala type-conversion mapping