Неявное преобразование коллекций Java в Scala 2.8

У меня проблема с JavaConversions с бета-версией 2.8:

import scala.collection.JavaConversions._
class Utils(dbFile : File, sep: String) extends IUtils {
    (...)
    def getFeatures() : java.util.List[String] =  csv.attributes.toList
}

А потом исключение:

[INFO]  Utils.scala:20: error: type mismatch;
[INFO]  found   : List[String]
[INFO]  required: java.util.List[String]
[INFO]   def getFeatures() : java.util.List[String] =  csv.attributes.toList
[INFO]          

person nablik    schedule 13.03.2010    source источник


Ответы (1)


JavaConversions не поддерживает преобразование между scala List (неизменяемая рекурсивная структура данных) и java List (изменяемая последовательность). Аналог в scala - это буфер:

Из scaladoc

Поддерживаются следующие преобразования:
scala.collection.mutable.Buffer ‹=> java.util.List

Возможно, вы захотите изменить свой код на:

def getFeatures() : java.util.List[String] 
    = new ListBuffer[String] ++ csv.attributes.toList
person oxbow_lakes    schedule 13.03.2010