在Java中使用scala map [英] Using scala map in Java

查看:1382
本文介绍了在Java中使用scala map的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个文件。一个是scala,另一个是java。

I have two files. One is scala and other is java.

Scala文件有一个返回scala immutable map的函数。

Scala file has a function which returns scala immutable map.

Java file希望将该地图用作字典。

Java file wants to use that map as dictionary.

我是scala和java的新手。如何将该scala地图转换为java dicionary?

I am a newbie to scala and java. How can I convert that scala map to java dicionary?

推荐答案

HTH。从Scala方面很容易做到。

HTH. Easy to do from the Scala side.

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}

编辑:伙计,这很痛苦:

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
        );
    }
}

这篇关于在Java中使用scala map的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆