簡體   English   中英

將 Scala map 轉換為 Java Z46F3EA056CAA31026B91F3F7ZBEEA0 時不可序列化異常的解決方法

[英]Workaround for notserializable exception when converting Scala map to Java Map

As described in this Github issue , Scala Maps that are wrapped as Java Maps are not serializable because scala.collection.convert.Wrappers$MapWrapper is not serializable.

此問題已在 Scala 2.12 中修復,但由於各種原因我必須使用 2.11。 那么將 Scala Map 轉換為 Java Z46F3EA056CAA3126B91F3F3F0C 沒有序列化錯誤的好解決方法是什么? 我別無選擇,只能從此 function 返回 java map。

我的代碼如下所示:

import scala.collection.JavaConverters.mapAsJavaMapConverter

def doSomethingCool(): util.Map[String, String] = {

    // ... Cool processing here ...
    // Return results as a Java Map
    myScalaMap.asJava
}

我覺得應該有一個簡單的方法來解決這個問題,但我一直無法弄清楚......

可以使用java.util.HashMap的復制構造函數復制包裝的 map 。

import scala.collection.JavaConverters.mapAsJavaMapConverter

def doSomethingCool(): util.Map[String, String] = {

    // ... Cool processing here ...
    // Return results as a Java Map
    new java.util.HashMap[String, String](myScalaMap.asJava)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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