【问题标题】:Scala - Problem using MapWrapper when upgrading from 2.7.7 to 2.8.1Scala - 从 2.7.7 升级到 2.8.1 时使用 MapWrapper 出现问题
【发布时间】:2010-12-01 20:56:21
【问题描述】:

我继承的这段代码在 Scala 2.7.7 下运行良好(好吧,将导入替换为使用 jcl )。但是当我尝试使用 2.8.1 时出现此错误:

错误:构造函数 MapWrapper 的参数不足:(底层:scala.collection.Map[String,String])collection.JavaConversions.MapWrapper[String,String]。 未指定值参数底层。

Map.empty ++ 新 MapWrapper[String, String] {

             ^

我有谷歌高低,尝试了不同的东西,但我找不到如何修改代码以在 scala 2.8.1 上工作

任何指针都会很棒。

谢谢

import scala.collection.JavaConversions.MapWrapper

object errorObj{
  def convertToStringMap(javaMap: Hashtable[String, String]) = {
    Map.empty ++ new MapWrapper[String, String] {
        def underlyinga = javaMap
    }
    
  }
}

【问题讨论】:

    标签: scala


    【解决方案1】:

    MapWrapper 是 Scala 2.8 中的一个类(在 2.7 中是具有抽象方法的特征)。所以,你不需要再定义抽象方法underlying了。

    new MapWrapper[String, String](someMap)
    

    【讨论】:

      【解决方案2】:

      更好的是,只需导入 scala.collection.JavaConversions._ 并让隐式转换为您将 Java Map 转换为 MapWrapper

      【讨论】:

        猜你喜欢
        • 2011-06-18
        • 1970-01-01
        • 2011-10-09
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-13
        • 1970-01-01
        相关资源
        最近更新 更多