Scala 2.8 имплицирует преобразования Java-коллекций - PullRequest
3 голосов
/ 13 марта 2010

У меня проблема с 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]          

1 Ответ

8 голосов
/ 13 марта 2010

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

Из скаладок

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

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

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