[英]Using scala map in Java
I have two files. 我有两个文件。 One is scala and other is java.
一个是scala,另一个是java。
Scala file has a function which returns scala immutable map. Scala文件有一个返回scala不可变映射的函数。
Java file wants to use that map as dictionary. Java文件想要将该映射用作字典。
I am a newbie to scala and java. 我是scala和java的新手。 How can I convert that scala map to java dicionary?
如何将该scala映射转换为java dicionary?
HTH. HTH。 Easy to do from the Scala side.
从Scala方面很容易做到。
scala> import collection.JavaConverters._
import collection.JavaConverters._
scala> val m = Map("one"->1)
m: scala.collection.immutable.Map[String,Int] = Map(one -> 1)
scala> val jm = m.asJava
jm: java.util.Map[String,Int] = {one=1}
scala> val hm = new java.util.Hashtable(jm)
<console>:12: error: type mismatch;
found : java.util.Map[String,Int]
required: Int
val hm = new java.util.Hashtable(jm)
^
scala> import java.util._
import java.util._
scala> val hm: Dictionary[String,Int] = new java.util.Hashtable(jm)
hm: java.util.Dictionary[String,Int] = {one=1}
Edit: Man, that was painful: 编辑:伙计,这很痛苦:
import java.util.*;
public class JavaMapper {
public Dictionary<String, Integer> n() {
return new Hashtable<String, Integer> (
(Map<String, Integer>)
scala.collection.JavaConverters$.MODULE$.mapAsJavaMapConverter((new ScalaMap().m())) // where m returns a Map, of course
);
}
}
This is a better way to convert a Scala immutable.Map to a Java Map in Java. 这是将Scala immutable.Map转换为Java中的Java Map的更好方法。
java.util.Map<String, String> javaMap = scala.collection.JavaConverters
.mapAsJavaMapConverter(scalaMap).asJava();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.