完全可以在Java代码中使用JavaConverters – 只需要几个额外的跳转来跳过:
import java.util.HashMap;
import scala.Predef;
import scala.Tuple2;
import scala.collection.JavaConverters;
import scala.collection.immutable.Map;
public class ToScalaExample {
public static Map toScalaMap(HashMap m) {
return JavaConverters.mapAsScalaMapConverter(m).asScala().toMap(
Predef.>conforms()
);
}
public static HashMap example() {
HashMap m = new HashMap();
m.put("a","A");
m.put("b","B");
m.put("c","C");
return m;
}
}
我们可以证明这样做从Scala REPL:
scala> val jm: java.util.HashMap[String,String] = ToScalaExample.example
jm: java.util.HashMap[String,String] = {b=B,c=C,a=A}
scala> val sm: Map[String,String] = ToScalaExample.toScalaMap(jm)
sm: Map[String,String] = Map(b -> B,c -> C,a -> A)
但是,您当然可以从Java代码轻松地调用这些方法.