簡體   English   中英

在Java中使用scala映射

[英]Using scala map in Java

我有兩個文件。 一個是scala,另一個是java。

Scala文件有一個返回scala不可變映射的函數。

Java文件想要將該映射用作字典。

我是scala和java的新手。 如何將該scala映射轉換為java dicionary?

HTH。 從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}

編輯:伙計,這很痛苦:

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

這是將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM