2010-12-01 10 views
2

J'ai hérité de ce morceau de code qui fonctionne bien sous Scala 2.7.7 (bien, en remplaçant l'import pour utiliser jcl). Mais quand j'essaie d'utiliser 2.8.1 je reçois cette erreur:Scala - Problème d'utilisation de MapWrapper lors de la mise à niveau de 2.7.7 à 2.8.1

error: not enough arguments for constructor MapWrapper: (underlying: scala.collection.Map[String,String])collection.JavaConversions.MapWrapper[String,String]. Unspecified value parameter underlying.

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

  ^

Je google haut et bas, essayé différentes choses, mais je ne peux pas trouver comment modifier le code pour travailler sur scala 2.8.1

Tout pointeur serait génial.

Merci

import scala.collection.JavaConversions.MapWrapper 

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

    } 
} 

Répondre

2

MapWrapper est une classe Scala 2.8 (était un trait avec des méthodes abstraites 2.7). Ainsi, vous n'avez plus besoin de définir la méthode abstraite underlying.

new MapWrapper[String, String](someMap) 
2

Mieux encore, il suffit d'importer scala.collection.JavaConversions._ et laisser une conversion implicite transformer Java Carte en MapWrapper pour vous.