2010-12-01 5 views
2

스칼라 2.7.7에서 잘 작동하는 상속 된 코드가 있습니다. (물론, jcl을 사용하기 위해 가져 오기를 대체합니다). 하지만 2.8.1를 사용하려고 할 때이 오류가 얻을 :스칼라 - 2.7.7에서 2.8.1로 업그레이드 할 때 MapWrapper를 사용할 때의 문제

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] {

  ^

내가 높고 낮은 구글이를, 다른 일을 시도하지만 스칼라 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 
    } 

    } 
} 

답변

2

MapWrapper 스칼라 2.8의 클래스입니다 (2.7 추상 메소드와 특성이었다). 따라서 추상적 인 메소드 underlying을 더 이상 정의 할 필요가 없습니다.

new MapWrapper[String, String](someMap) 
2

더 나은 아직, 단지 scala.collection.JavaConversions._을 가져 암시 적 변환이 당신을 위해 MapWrapper에 Java 맵을 돌려 보자.

관련 문제